The faces were defined wrong, so every time a buffer came into focus, it would spam *Messages*.
lang/graphql
Description
This module adds GraphQL support to Doom Emacs.
- Code completion
-
LSP support (
+lsp)- Diagnostics (GraphQL syntax linting/validations) (spec-compliant)
- Autocomplete suggestions (spec-compliant)
- Hyperlink to fragment definitions and named types (type, input, enum) definitions (spec-compliant)
- Outline view support for queries and SDL
- Symbols support across the workspace
- Local schema viewer
- Org-babel exporter (requires
:lang org)
Maintainers
- @elken (Author)
Module Flags
+lspEnable LSP support through graphql-language-service-cli (also requires:tools lsp)
Plugins
- graphql-mode
- graphql-doc
- company-graphql (when
+lspis disabled)
Hacks
Added a convenience function +graphql-doc-open-config to open schema docs from a
.graphqlconfig file.
Prerequisites
There are no prerequisites for using this module. LSP server should be downloaded upon opening a graphql buffer.
Features
Sending queries
When visiting a graphql buffer, you have access to the ability to send the
current query with C-c C-c which will prompt you for an optional variables file,
then execute the query and return a buffer of the results.
It's also possible to send queries using org-babel using a block such as the
ones below (executing correctly will require :lang org)
{
"continentCode": "AF"
}
query GetContinents($continentCode: String!) {
continent(code: $continentCode) {
name
code
}
}
{
"data": {
"continent": {
"name": "Africa",
"code": "AF"
}
}
}
Viewing docs
With this module, there are 3 ways to view schemas:
+graphql-doc-open-configwhich uses a local.graphqlconfigfile to seed endpoints to querygraphql-docwhich prompts you to select an endpoint based on ones added manually bygraphql-doc-add-apigraphql-doc-open-urlwhich prompts to to manually enter an endpoint url
When using the doc viewer, there are a few bindings for navigating around.
| Key | Command | Description |
|---|---|---|
C-j |
forward-button |
Follow a forward button |
C-k |
backward-button |
Follow a backward button |
<backspace> |
graphql-doc-go-back |
Go back to a previous page |
mouse-1 |
- | Follow the next label under point |
RET |
- | Follow the next label under point |
Configuration
Most of the "magic" in the module relies on a properly configured
.graphqlconfig file, so follow the examples linked to create an appropriate
setup.
LSP configuration is handled through GraphQL Config to handle custom directives/documents/validation etc.
These files will also be useful to other editors, so it would be worth trying to get them into version control.