feat(nvim): setup web dev lsps
All checks were successful
Discord / discord commits (push) Has been skipped
All checks were successful
Discord / discord commits (push) Has been skipped
This commit is contained in:
parent
c8f8dc98e6
commit
772374b0fd
4 changed files with 88 additions and 78 deletions
|
@ -16,7 +16,10 @@ in
|
||||||
lib.mkIf neovimIde {
|
lib.mkIf neovimIde {
|
||||||
assertions = [
|
assertions = [
|
||||||
{
|
{
|
||||||
assertion = neovimIde && hasPrefix "/home/${mainUser}/" flakeEnv || !neovimIde;
|
assertion =
|
||||||
|
neovimIde
|
||||||
|
&& hasPrefix "/home/${mainUser}/" flakeEnv
|
||||||
|
|| !neovimIde;
|
||||||
message = ''
|
message = ''
|
||||||
Your $FLAKE environment variable needs to point to a directory in
|
Your $FLAKE environment variable needs to point to a directory in
|
||||||
the main users' home to use the neovim module.
|
the main users' home to use the neovim module.
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
|
stylelint-lsp,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.vars) neovimIde;
|
inherit (config.vars) neovimIde;
|
||||||
|
@ -12,10 +13,13 @@ in
|
||||||
neovim = {
|
neovim = {
|
||||||
withNodeJs = true;
|
withNodeJs = true;
|
||||||
|
|
||||||
extraPackages = with pkgs; [
|
extraPackages = [
|
||||||
nodejs_latest
|
pkgs.nodejs_latest
|
||||||
nodePackages.npm
|
pkgs.nodePackages.npm
|
||||||
nodePackages.neovim
|
pkgs.nodePackages.neovim
|
||||||
|
|
||||||
|
stylelint-lsp.packages.${pkgs.system}.default
|
||||||
|
pkgs.vscode-langservers-extracted
|
||||||
];
|
];
|
||||||
|
|
||||||
extraLuaConfig =
|
extraLuaConfig =
|
||||||
|
@ -24,7 +28,7 @@ in
|
||||||
*/
|
*/
|
||||||
''
|
''
|
||||||
vim.api.nvim_create_autocmd("FileType", {
|
vim.api.nvim_create_autocmd("FileType", {
|
||||||
pattern = { 'javascript' , 'typescript'},
|
pattern = { 'javascript', 'typescript', 'css', 'scss' },
|
||||||
command = 'setlocal ts=4 sw=4 sts=0 expandtab',
|
command = 'setlocal ts=4 sw=4 sts=0 expandtab',
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -35,11 +39,48 @@ in
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd("FileType", {
|
vim.api.nvim_create_autocmd("FileType", {
|
||||||
pattern = 'scss',
|
pattern = 'scss',
|
||||||
command = 'setl iskeyword+=@-@',
|
command = 'setlocal iskeyword+=@-@',
|
||||||
});
|
});
|
||||||
|
|
||||||
|
local lsp = require('lspconfig');
|
||||||
|
local coq = require('coq');
|
||||||
|
local tsserver = require("typescript-tools");
|
||||||
|
|
||||||
|
tsserver.setup(coq.lsp_ensure_capabilities({}));
|
||||||
|
|
||||||
|
lsp.eslint.setup(coq.lsp_ensure_capabilities({
|
||||||
|
-- auto-save
|
||||||
|
on_attach = function(client, bufnr)
|
||||||
|
vim.api.nvim_create_autocmd('BufWritePre', {
|
||||||
|
buffer = bufnr,
|
||||||
|
command = 'EslintFixAll',
|
||||||
|
});
|
||||||
|
end,
|
||||||
|
}));
|
||||||
|
|
||||||
|
lsp.cssls.setup(coq.lsp_ensure_capabilities({
|
||||||
|
settings = {
|
||||||
|
css = {
|
||||||
|
validate = false,
|
||||||
|
},
|
||||||
|
less = {
|
||||||
|
validate = false,
|
||||||
|
},
|
||||||
|
scss = {
|
||||||
|
validate = false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}));
|
||||||
|
|
||||||
|
require('lspconfig').stylelint_lsp.setup(coq.lsp_ensure_capabilities({
|
||||||
|
settings = {
|
||||||
|
stylelintplus = {},
|
||||||
|
},
|
||||||
|
}));
|
||||||
'';
|
'';
|
||||||
|
|
||||||
plugins = [
|
plugins = [
|
||||||
|
vimPlugins.typescript-tools-nvim
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
104
flake.lock
104
flake.lock
|
@ -119,27 +119,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"coc-stylelintplus": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-utils": "flake-utils",
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1701045677,
|
|
||||||
"narHash": "sha256-Uw7TY8kqcikjeoT3y6Bh7UHvS8Z4jYJTvSkeFKrxfOQ=",
|
|
||||||
"owner": "matt1432",
|
|
||||||
"repo": "coc-stylelintplus",
|
|
||||||
"rev": "3a318b03c4d794ceb80bf24a083334d5cbcc86e5",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "matt1432",
|
|
||||||
"repo": "coc-stylelintplus",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"curseforge-server-downloader-src": {
|
"curseforge-server-downloader-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -362,24 +341,6 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
|
||||||
"lastModified": 1694529238,
|
|
||||||
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-utils_2": {
|
|
||||||
"inputs": {
|
|
||||||
"systems": "systems_2"
|
|
||||||
},
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1710146030,
|
"lastModified": 1710146030,
|
||||||
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||||
|
@ -394,9 +355,9 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils_3": {
|
"flake-utils_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_6"
|
"systems": "systems_5"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1710146030,
|
"lastModified": 1710146030,
|
||||||
|
@ -518,7 +479,7 @@
|
||||||
},
|
},
|
||||||
"headscale": {
|
"headscale": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils_2",
|
"flake-utils": "flake-utils",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
|
@ -640,7 +601,7 @@
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"systems": "systems_4"
|
"systems": "systems_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1713472482,
|
"lastModified": 1713472482,
|
||||||
|
@ -664,7 +625,7 @@
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"systems": "systems_5",
|
"systems": "systems_4",
|
||||||
"xdph": "xdph"
|
"xdph": "xdph"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -716,7 +677,7 @@
|
||||||
"hypridle",
|
"hypridle",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"systems": "systems_3"
|
"systems": "systems_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1713121246,
|
"lastModified": 1713121246,
|
||||||
|
@ -820,7 +781,7 @@
|
||||||
},
|
},
|
||||||
"lib-aggregate": {
|
"lib-aggregate": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils_3",
|
"flake-utils": "flake-utils_2",
|
||||||
"nixpkgs-lib": "nixpkgs-lib_4"
|
"nixpkgs-lib": "nixpkgs-lib_4"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -1724,7 +1685,6 @@
|
||||||
"astal": "astal",
|
"astal": "astal",
|
||||||
"bat-theme-src": "bat-theme-src",
|
"bat-theme-src": "bat-theme-src",
|
||||||
"caddy-plugins": "caddy-plugins",
|
"caddy-plugins": "caddy-plugins",
|
||||||
"coc-stylelintplus": "coc-stylelintplus",
|
|
||||||
"curseforge-server-downloader-src": "curseforge-server-downloader-src",
|
"curseforge-server-downloader-src": "curseforge-server-downloader-src",
|
||||||
"eisa-scripts-src": "eisa-scripts-src",
|
"eisa-scripts-src": "eisa-scripts-src",
|
||||||
"firefox-gx-src": "firefox-gx-src",
|
"firefox-gx-src": "firefox-gx-src",
|
||||||
|
@ -1765,6 +1725,7 @@
|
||||||
"pokemon-colorscripts-src": "pokemon-colorscripts-src",
|
"pokemon-colorscripts-src": "pokemon-colorscripts-src",
|
||||||
"secrets": "secrets",
|
"secrets": "secrets",
|
||||||
"sops-nix": "sops-nix",
|
"sops-nix": "sops-nix",
|
||||||
|
"stylelint-lsp": "stylelint-lsp",
|
||||||
"subsync": "subsync",
|
"subsync": "subsync",
|
||||||
"touch-gestures-src": "touch-gestures-src",
|
"touch-gestures-src": "touch-gestures-src",
|
||||||
"trash-d-src": "trash-d-src",
|
"trash-d-src": "trash-d-src",
|
||||||
|
@ -1850,6 +1811,26 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"stylelint-lsp": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1715266912,
|
||||||
|
"narHash": "sha256-O/YuL2nkQmp8LIAWaKCHQ63FM9d5rHfD2xDHIvPIlUM=",
|
||||||
|
"owner": "matt1432",
|
||||||
|
"repo": "stylelint-lsp",
|
||||||
|
"rev": "679c87ee3ac0256c1cf215cb746085159a6f3b92",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "matt1432",
|
||||||
|
"repo": "stylelint-lsp",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"subsync": {
|
"subsync": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -1890,16 +1871,16 @@
|
||||||
},
|
},
|
||||||
"systems_2": {
|
"systems_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681028828,
|
"lastModified": 1689347949,
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||||
"owner": "nix-systems",
|
"owner": "nix-systems",
|
||||||
"repo": "default",
|
"repo": "default-linux",
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-systems",
|
"owner": "nix-systems",
|
||||||
"repo": "default",
|
"repo": "default-linux",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -1934,21 +1915,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems_5": {
|
"systems_5": {
|
||||||
"locked": {
|
|
||||||
"lastModified": 1689347949,
|
|
||||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default-linux",
|
|
||||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default-linux",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"systems_6": {
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681028828,
|
"lastModified": 1681028828,
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
@ -1963,7 +1929,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems_7": {
|
"systems_6": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1689347949,
|
"lastModified": 1689347949,
|
||||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||||
|
@ -2095,7 +2061,7 @@
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"systems": "systems_7"
|
"systems": "systems_6"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1714464091,
|
"lastModified": 1714464091,
|
||||||
|
|
|
@ -334,10 +334,10 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
# Neovim inputs
|
# Neovim inputs
|
||||||
coc-stylelintplus = {
|
stylelint-lsp = {
|
||||||
type = "github";
|
type = "github";
|
||||||
owner = "matt1432";
|
owner = "matt1432";
|
||||||
repo = "coc-stylelintplus";
|
repo = "stylelint-lsp";
|
||||||
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue