mirror of
https://github.com/NotAShelf/nvf.git
synced 2025-11-12 16:35:30 +00:00
Merge branch 'main' into languages/add-intelephense-php-lsp
This commit is contained in:
commit
8dd7d943c7
7 changed files with 176 additions and 14 deletions
2
.github/workflows/cachix.yml
vendored
2
.github/workflows/cachix.yml
vendored
|
|
@ -36,7 +36,7 @@ jobs:
|
||||||
- name: Install Nix
|
- name: Install Nix
|
||||||
uses: DeterminateSystems/nix-installer-action@main
|
uses: DeterminateSystems/nix-installer-action@main
|
||||||
|
|
||||||
- uses: cachix/cachix-action@v15
|
- uses: cachix/cachix-action@v16
|
||||||
with:
|
with:
|
||||||
authToken: ${{ secrets.CACHIX_TOKEN }}
|
authToken: ${{ secrets.CACHIX_TOKEN }}
|
||||||
extraPullNames: nix-community
|
extraPullNames: nix-community
|
||||||
|
|
|
||||||
|
|
@ -159,8 +159,10 @@
|
||||||
[thamenato](https://github.com/thamenato):
|
[thamenato](https://github.com/thamenato):
|
||||||
|
|
||||||
[ruff]: (https://github.com/astral-sh/ruff)
|
[ruff]: (https://github.com/astral-sh/ruff)
|
||||||
|
[cue]: (https://cuelang.org/)
|
||||||
|
|
||||||
- Add [ruff] as a formatter option in `vim.languages.python.format.type`.
|
- Add [ruff] as a formatter option in `vim.languages.python.format.type`.
|
||||||
|
- Add [cue] support under `vim.languages.cue`.
|
||||||
|
|
||||||
[ARCIII](https://github.com/ArmandoCIII):
|
[ARCIII](https://github.com/ArmandoCIII):
|
||||||
|
|
||||||
|
|
@ -244,4 +246,9 @@
|
||||||
|
|
||||||
[viicslen](https://github.com/viicslen):
|
[viicslen](https://github.com/viicslen):
|
||||||
|
|
||||||
- Add `intelephense` language server suppor under `vim.languages.php.lsp.server`
|
- Add `intelephense` language server support under
|
||||||
|
`vim.languages.php.lsp.server`
|
||||||
|
|
||||||
|
[Butzist](https://github.com/butzist):
|
||||||
|
|
||||||
|
- Add Helm chart support under `vim.languages.helm`.
|
||||||
|
|
|
||||||
51
modules/plugins/languages/cue.nix
Normal file
51
modules/plugins/languages/cue.nix
Normal file
|
|
@ -0,0 +1,51 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (lib.options) mkEnableOption mkOption;
|
||||||
|
inherit (lib.modules) mkIf mkMerge;
|
||||||
|
inherit (lib.types) package;
|
||||||
|
inherit (lib.nvim.types) mkGrammarOption;
|
||||||
|
|
||||||
|
cfg = config.vim.languages.cue;
|
||||||
|
in {
|
||||||
|
options.vim.languages.cue = {
|
||||||
|
enable = mkEnableOption "CUE language support";
|
||||||
|
|
||||||
|
treesitter = {
|
||||||
|
enable = mkEnableOption "CUE treesitter" // {default = config.vim.languages.enableTreesitter;};
|
||||||
|
|
||||||
|
package = mkGrammarOption pkgs "cue";
|
||||||
|
};
|
||||||
|
|
||||||
|
lsp = {
|
||||||
|
enable = mkEnableOption "CUE LSP support" // {default = config.vim.languages.enableLSP;};
|
||||||
|
|
||||||
|
package = mkOption {
|
||||||
|
type = package;
|
||||||
|
default = pkgs.cue;
|
||||||
|
description = "cue lsp implementation";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable (mkMerge [
|
||||||
|
(mkIf cfg.treesitter.enable {
|
||||||
|
vim.treesitter.enable = true;
|
||||||
|
vim.treesitter.grammars = [cfg.treesitter.package];
|
||||||
|
})
|
||||||
|
|
||||||
|
(mkIf cfg.lsp.enable {
|
||||||
|
vim.lsp.lspconfig.enable = true;
|
||||||
|
vim.lsp.lspconfig.sources.cue-lsp = ''
|
||||||
|
lspconfig.cue.setup {
|
||||||
|
capabilities = capabilities,
|
||||||
|
on_attach = default_on_attach,
|
||||||
|
cmd = {"${cfg.lsp.package}/bin/cue", "lsp"},
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
})
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
@ -5,6 +5,7 @@ in {
|
||||||
./asm.nix
|
./asm.nix
|
||||||
./astro.nix
|
./astro.nix
|
||||||
./bash.nix
|
./bash.nix
|
||||||
|
./cue.nix
|
||||||
./dart.nix
|
./dart.nix
|
||||||
./clang.nix
|
./clang.nix
|
||||||
./css.nix
|
./css.nix
|
||||||
|
|
@ -12,6 +13,7 @@ in {
|
||||||
./gleam.nix
|
./gleam.nix
|
||||||
./go.nix
|
./go.nix
|
||||||
./hcl.nix
|
./hcl.nix
|
||||||
|
./helm.nix
|
||||||
./kotlin.nix
|
./kotlin.nix
|
||||||
./html.nix
|
./html.nix
|
||||||
./haskell.nix
|
./haskell.nix
|
||||||
|
|
|
||||||
89
modules/plugins/languages/helm.nix
Normal file
89
modules/plugins/languages/helm.nix
Normal file
|
|
@ -0,0 +1,89 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (builtins) attrNames;
|
||||||
|
inherit (lib.options) mkEnableOption mkOption;
|
||||||
|
inherit (lib.modules) mkIf mkMerge;
|
||||||
|
inherit (lib.lists) isList;
|
||||||
|
inherit (lib.types) enum either listOf package str;
|
||||||
|
inherit (lib.nvim.types) mkGrammarOption;
|
||||||
|
inherit (lib.nvim.lua) expToLua;
|
||||||
|
|
||||||
|
cfg = config.vim.languages.helm;
|
||||||
|
yamlCfg = config.vim.languages.yaml;
|
||||||
|
|
||||||
|
helmCmd =
|
||||||
|
if isList cfg.lsp.package
|
||||||
|
then cfg.lsp.package
|
||||||
|
else ["${cfg.lsp.package}/bin/helm_ls" "serve"];
|
||||||
|
yamlCmd =
|
||||||
|
if isList yamlCfg.lsp.package
|
||||||
|
then builtins.elemAt yamlCfg.lsp.package 0
|
||||||
|
else "${yamlCfg.lsp.package}/bin/yaml-language-server";
|
||||||
|
|
||||||
|
defaultServer = "helm-ls";
|
||||||
|
servers = {
|
||||||
|
helm-ls = {
|
||||||
|
package = pkgs.helm-ls;
|
||||||
|
lspConfig = ''
|
||||||
|
lspconfig.helm_ls.setup {
|
||||||
|
capabilities = capabilities,
|
||||||
|
on_attach = default_on_attach,
|
||||||
|
cmd = ${expToLua helmCmd},
|
||||||
|
settings = {
|
||||||
|
['helm-ls'] = {
|
||||||
|
yamlls = {
|
||||||
|
path = "${yamlCmd}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
options.vim.languages.helm = {
|
||||||
|
enable = mkEnableOption "Helm language support";
|
||||||
|
|
||||||
|
treesitter = {
|
||||||
|
enable = mkEnableOption "Helm treesitter" // {default = config.vim.languages.enableTreesitter;};
|
||||||
|
package = mkGrammarOption pkgs "helm";
|
||||||
|
};
|
||||||
|
|
||||||
|
lsp = {
|
||||||
|
enable = mkEnableOption "Helm LSP support" // {default = config.vim.languages.enableLSP;};
|
||||||
|
|
||||||
|
server = mkOption {
|
||||||
|
description = "Helm LSP server to use";
|
||||||
|
type = enum (attrNames servers);
|
||||||
|
default = defaultServer;
|
||||||
|
};
|
||||||
|
|
||||||
|
package = mkOption {
|
||||||
|
description = "Helm LSP server package";
|
||||||
|
type = either package (listOf str);
|
||||||
|
default = servers.${cfg.lsp.server}.package;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable (mkMerge [
|
||||||
|
(mkIf cfg.treesitter.enable {
|
||||||
|
vim.treesitter.enable = true;
|
||||||
|
vim.treesitter.grammars = [cfg.treesitter.package];
|
||||||
|
})
|
||||||
|
|
||||||
|
(mkIf cfg.lsp.enable {
|
||||||
|
vim.lsp.lspconfig.enable = true;
|
||||||
|
vim.lsp.lspconfig.sources.helm-lsp = servers.${cfg.lsp.server}.lspConfig;
|
||||||
|
})
|
||||||
|
|
||||||
|
{
|
||||||
|
# Enables filetype detection
|
||||||
|
vim.startPlugins = [pkgs.vimPlugins.vim-helm];
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
@ -64,7 +64,7 @@
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
intelephense = {
|
intelephense = {
|
||||||
package = pkgs.intelephense;
|
package = pkgs.intelephense;
|
||||||
lspConfig = ''
|
lspConfig = ''
|
||||||
|
|
@ -72,15 +72,15 @@
|
||||||
capabilities = capabilities,
|
capabilities = capabilities,
|
||||||
on_attach = default_on_attach,
|
on_attach = default_on_attach,
|
||||||
cmd = ${
|
cmd = ${
|
||||||
if isList cfg.lsp.package
|
if isList cfg.lsp.package
|
||||||
then expToLua cfg.lsp.package
|
then expToLua cfg.lsp.package
|
||||||
else ''
|
else ''
|
||||||
{
|
{
|
||||||
"${getExe cfg.lsp.package}",
|
"${getExe cfg.lsp.package}",
|
||||||
"--stdio"
|
"--stdio"
|
||||||
},
|
},
|
||||||
''
|
''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -14,14 +14,27 @@
|
||||||
|
|
||||||
cfg = config.vim.languages.yaml;
|
cfg = config.vim.languages.yaml;
|
||||||
|
|
||||||
|
onAttach =
|
||||||
|
if config.vim.languages.helm.lsp.enable
|
||||||
|
then ''
|
||||||
|
on_attach = function(client, bufnr)
|
||||||
|
local filetype = vim.bo[bufnr].filetype
|
||||||
|
if filetype == "helm" then
|
||||||
|
client.stop()
|
||||||
|
end
|
||||||
|
end''
|
||||||
|
else "on_attach = default_on_attach";
|
||||||
|
|
||||||
defaultServer = "yaml-language-server";
|
defaultServer = "yaml-language-server";
|
||||||
servers = {
|
servers = {
|
||||||
yaml-language-server = {
|
yaml-language-server = {
|
||||||
package = pkgs.nodePackages.yaml-language-server;
|
package = pkgs.nodePackages.yaml-language-server;
|
||||||
lspConfig = ''
|
lspConfig = ''
|
||||||
|
|
||||||
|
|
||||||
lspconfig.yamlls.setup {
|
lspconfig.yamlls.setup {
|
||||||
capabilities = capabilities;
|
capabilities = capabilities,
|
||||||
on_attach = default_on_attach;
|
${onAttach},
|
||||||
cmd = ${
|
cmd = ${
|
||||||
if isList cfg.lsp.package
|
if isList cfg.lsp.package
|
||||||
then expToLua cfg.lsp.package
|
then expToLua cfg.lsp.package
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue