A VS Code extension that adds language support for kanata configuration files.
Available at
- VS Code Marketplace - https://marketplace.visualstudio.com/items?itemName=rszyma.vscode-kanata
- Open VSX - https://open-vsx.org/extension/rszyma/vscode-kanata
This extension aims to stay up-to-date with latest kanata git.
Whenever something changes in parser
folder in kanata repository, at the end of the day,
Github Actions will automatically build a new version of this extension with updated parser.
Kanata config files are detected by .kbd
file extension.
keywords, action identifiers, alias handles etc.
Config will be parsed and validated, when saving document.
If you use include
configuration items in your kanata config, make sure to adjust the following settings:
vscode-kanata.includesAndWorkspaces
vscode-kanata.mainConfigFile
Important: Absolute paths in include
blocks that point outside the opened workspace aren't supported.
Also, if you work with multiple main files, and find yourself switching mainConfigFile
often,
there's a handy command palette entry:
Kanata: Set current file as main
This is enabled by default, because I've seen a lot of kanata configs, and it seems like
majority of users prefer to align their deflayer
s according to spacial layout of defsrc
.
If you have "Auto format on save enabled" and don't want this feature, you can disable
it in settings (search for "kanata.format").
- CTRL+Click on an identifier to go to definition
- CTRL+Click on a definition to reveal references.
Implemented for aliases, variables, layers, virtualkeys, templates and includes. Supported in both single-mode and workspace (includes-enabled) mode.
If you have an idea what could be improved, feel free to open an issue or a PR.
If you encounter a bug, please report it here: https://github.com/rszyma/vscode-kanata/issues
See this document for build instructions.
See the change log.
- https://github.com/jtroo/kanata/ - provides kanata-parser crate
- https://github.com/osohq/oso - used this as vscode extension template (with a lot of things removed)
- https://github.com/canadaduane/vscode-kmonad - syntax highlighting config
- https://github.com/jtroo/kanata/blob/main/assets/kanata-icon.svg - kanata icon
- https://github.com/entibo/vscode-kmonad-format - the idea of formatting
deflayer
s according to spacing indefsrc