These optional dotfiles indicate the root of a module or module group (:lang), and will later contain module metadata. They will also serve as an alternative to packages.el and doctor.el, and will aide the parts of the v3.0 module API concerned with resolving the current module from a path (`doom-module-from-path`), which currently rely too heavily on parsing path strings. For now, however, they're simply placeholders. |
||
---|---|---|
.. | ||
.doommodule | ||
autoload.el | ||
config.el | ||
packages.el | ||
README.org |
:lang graphql
Description unfold
This module adds GraphQL support to Doom Emacs.
It includes:
- Code completion
-
LSP support (doom-module:+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 doom-module::lang org)
Maintainers
Module flags
- +lsp
-
Enable LSP support for
graphql-mode
. Requires doom-module::tools lsp and a langserver (graphql-language-service-cli).
Packages
Hacks
- Added a convenience function fn:+graphql-doc-open-config to open schema docs from a .graphqlconfig file.
TODO Changelog
This module does not have a changelog yet.
Installation
Enable this module in your doom!
block.
LSP
This module has no direct requirements, but the +lsp flag requires a supported LSP server.
Formatter
Formatting is handled using the doom-module::editor format module via prettier.
Usage
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-config
which uses a local.graphqlconfig
file to seed endpoints to querygraphql-doc
which prompts you to select an endpoint based on ones added manually bygraphql-doc-add-api
graphql-doc-open-url
which prompts 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 checking them into version control.
Troubleshooting
Frequently asked questions
This module has no FAQs yet. Ask one?
TODO Appendix
This module has no appendix yet. Write one?