zed-github-actions
GitHub Actions LSP support for Zed. As this repository uses code based on some official Zed extensions (e.g Svelte and Astro), this repository is under the same license as those. To develop this extension, see the Developing Extensions section of the Zed docs.
- Tree-sitter: zed-industries/tree-sitter-yaml
- Language Server: actions/languageservices
- Language Server (binary): lttb/gh-actions-language-server
Note
The LSP provided by the official NPM package
@actions/languageserverdoes not include a binary (see issue #56), so this repository uses a third-party NPM package to install it viagh-actions-language-server.
Configuring
Filetype settings
This extension by default does not have any file associations built-in, as Zed doesn't support glob patterns at the extension-level to recognize a language within a specific directory. Instead, you can edit your Zed settings file (settings.json) with:
{
// ...
"file_types": {
"GitHub Actions": [
".github/workflows/*.yml",
".github/workflows/*.yaml"
]
}
}This extension avoids conflicting with the built-in YAML support for Zed by following how other Zed extensions for specific YAML files resolve this issue, including the Ansible extension and Docker Compose extension.
LSP settings
You can configure the LSP settings in Zed with:
{
// ...
"lsp": {
"gh-actions-language-server": {
"initialization_options": {
// ...
}
}
}
}Default settings
The default settings (initialization_options) set by the extension is shown below:
{
"sessionToken": ""
}A session token is a GitHub PAT (Personal Access Token). This is not required, but when specified allows accessing more information from github.com.
- Classic PATs will need access to
repoandworkflowscopes. - Fine-grained PATs, which can either be given access to:
- "Public repositories"
- "All repositories"/"Only select repositories" with repository permissions to
Workflows
License
Licensed under Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0).
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be licensed as above, without any additional terms or conditions.