mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-04-25 01:18:26 +02:00
refactor(home/base/tui/edistors): neovim - adjust the classification of lsp/treesitter
This commit is contained in:
@@ -30,8 +30,10 @@ in {
|
|||||||
viAlias = true;
|
viAlias = true;
|
||||||
vimAlias = true;
|
vimAlias = true;
|
||||||
|
|
||||||
# currently we use lazy.nvim as neovim's package manager, so comment this one.
|
# Currently we use lazy.nvim as neovim's package manager, so comment this one.
|
||||||
# Install packages that will compile locally or download FHS binaries via Nix!
|
#
|
||||||
|
# NOTE: These plugins will not be used by astronvim by default!
|
||||||
|
# We should install packages that will compile locally or download FHS binaries via Nix!
|
||||||
# and use lazy.nvim's `dir` option to specify the package directory in nix store.
|
# and use lazy.nvim's `dir` option to specify the package directory in nix store.
|
||||||
# so that these plugins can work on NixOS.
|
# so that these plugins can work on NixOS.
|
||||||
#
|
#
|
||||||
@@ -40,6 +42,8 @@ in {
|
|||||||
plugins = with pkgs.vimPlugins; [
|
plugins = with pkgs.vimPlugins; [
|
||||||
# search all the plugins using https://search.nixos.org/packages
|
# search all the plugins using https://search.nixos.org/packages
|
||||||
telescope-fzf-native-nvim
|
telescope-fzf-native-nvim
|
||||||
|
|
||||||
|
nvim-treesitter.withAllGrammars
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
-- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`)
|
-- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`)
|
||||||
-- as this provides autocomplete and documentation while editing
|
-- as this provides autocomplete and documentation while editing
|
||||||
|
|
||||||
|
|
||||||
---@type LazySpec
|
---@type LazySpec
|
||||||
return {
|
return {
|
||||||
"AstroNvim/astrolsp",
|
"AstroNvim/astrolsp",
|
||||||
@@ -42,40 +41,51 @@ return {
|
|||||||
-- end
|
-- end
|
||||||
},
|
},
|
||||||
-- enable servers that you already have installed without mason
|
-- enable servers that you already have installed without mason
|
||||||
|
-- https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md
|
||||||
servers = {
|
servers = {
|
||||||
---- Frontend & NodeJS
|
---- Data & Configuration Languages
|
||||||
|
"jsonls", -- json language server
|
||||||
|
"jsonnet_ls", -- jsonnet language server
|
||||||
|
"yamlls", -- yaml language server
|
||||||
|
"taplo", -- toml language server
|
||||||
|
"dagger", -- cuelsp - cue language server
|
||||||
|
"terraformls", -- terraform hcl
|
||||||
|
"marksman", -- markdown ls
|
||||||
|
"nickel_ls", -- nickel language server
|
||||||
|
"nil_ls", -- nix language server
|
||||||
|
"bufls", -- protocol buffer language server
|
||||||
|
"dockerls", -- dockerfile
|
||||||
|
"cmake", -- cmake language server
|
||||||
|
"sqls", -- sql language server
|
||||||
|
|
||||||
|
---- General Purpose Languages
|
||||||
|
"clangd", -- c/c++
|
||||||
|
"gopls", -- go
|
||||||
|
"jdtls", -- java language server, provides only basic features
|
||||||
|
"rust_analyzer", -- rust
|
||||||
|
"pyright", -- python
|
||||||
|
"ruff_lsp", -- extremely fast Python linter and code transformation
|
||||||
|
-- "julials", -- julia language server
|
||||||
|
-- "zls", -- zig language server
|
||||||
|
"lua_ls", -- lua
|
||||||
|
"bashls", -- bash
|
||||||
|
"nushell", -- nushell language server
|
||||||
|
|
||||||
|
---- Web Development
|
||||||
"tsserver", -- typescript/javascript language server
|
"tsserver", -- typescript/javascript language server
|
||||||
"tailwindcss", -- tailwindcss language server
|
"tailwindcss", -- tailwindcss language server
|
||||||
"html", -- html language server
|
"html", -- html language server
|
||||||
"cssls", -- css language server
|
"cssls", -- css language server
|
||||||
"prismals", -- prisma language server
|
"prismals", -- prisma language server
|
||||||
"volar", -- vue language server
|
"volar", -- vue language server
|
||||||
---- Configuration Language
|
|
||||||
"marksman", -- markdown ls
|
---- Lisp Like
|
||||||
"jsonls", -- json language server
|
|
||||||
"yamlls", -- yaml language server
|
|
||||||
"taplo", -- toml language server
|
|
||||||
---- Backend
|
|
||||||
"lua_ls", -- lua
|
|
||||||
"gopls", -- go
|
|
||||||
"rust_analyzer", -- rust
|
|
||||||
"pyright", -- python
|
|
||||||
"ruff_lsp", -- extremely fast Python linter and code transformation
|
|
||||||
"jdtls", -- java
|
|
||||||
"nil_ls", -- nix language server
|
|
||||||
"bufls", -- protocol buffer language server
|
|
||||||
"zls", -- zig language server
|
|
||||||
---- HDL
|
|
||||||
"verible", -- verilog language server
|
|
||||||
---- Operation & Cloud Nativautoindente
|
|
||||||
"bashls", -- bash
|
|
||||||
"cmake", -- cmake language server
|
|
||||||
"clangd", -- c/c++
|
|
||||||
"dockerls", -- dockerfile
|
|
||||||
"jsonnet_ls", -- jsonnet language server
|
|
||||||
"terraformls", -- terraform hcl
|
|
||||||
"nushell", -- nushell language server
|
|
||||||
"scheme_langserver", -- scheme language server
|
"scheme_langserver", -- scheme language server
|
||||||
|
"elixirls", -- elixir language server
|
||||||
|
-- "clojure_lsp", -- clojure language server"
|
||||||
|
|
||||||
|
---- Circuit Design
|
||||||
|
"verible", -- verilog language server
|
||||||
},
|
},
|
||||||
-- customize language server configuration options passed to `lspconfig`
|
-- customize language server configuration options passed to `lspconfig`
|
||||||
---@diagnostic disable: missing-fields
|
---@diagnostic disable: missing-fields
|
||||||
|
|||||||
@@ -20,31 +20,23 @@ return {
|
|||||||
opts.ignore_install = { "gotmpl", "wing" }
|
opts.ignore_install = { "gotmpl", "wing" }
|
||||||
|
|
||||||
-- add more things to the ensure_installed table protecting against community packs modifying it
|
-- add more things to the ensure_installed table protecting against community packs modifying it
|
||||||
|
-- https://github.com/nvim-treesitter/nvim-treesitter/tree/master
|
||||||
opts.ensure_installed = require("astrocore").list_insert_unique(opts.ensure_installed, {
|
opts.ensure_installed = require("astrocore").list_insert_unique(opts.ensure_installed, {
|
||||||
-- neovim
|
-- please add only the tree-sitters that are not available in nixpkgs here
|
||||||
"vim",
|
|
||||||
"lua",
|
"kdl",
|
||||||
-- operation & cloud native
|
|
||||||
"dockerfile",
|
|
||||||
"hcl",
|
|
||||||
"jsonnet",
|
|
||||||
"regex",
|
|
||||||
"terraform",
|
|
||||||
"nix",
|
|
||||||
"csv",
|
"csv",
|
||||||
"nickel", -- nickel language
|
"xml",
|
||||||
"just", -- justfile
|
"vhdl",
|
||||||
-- other programming language
|
|
||||||
|
---- Misc
|
||||||
"diff",
|
"diff",
|
||||||
|
"git_config",
|
||||||
|
"git_rebase",
|
||||||
"gitignore",
|
"gitignore",
|
||||||
"gitcommit",
|
"gitcommit",
|
||||||
"latex",
|
"gitattributes",
|
||||||
"sql",
|
"ssh_config",
|
||||||
-- Lisp like
|
|
||||||
"fennel",
|
|
||||||
"clojure",
|
|
||||||
"commonlisp",
|
|
||||||
"scheme",
|
|
||||||
})
|
})
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,134 +5,151 @@
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; (
|
||||||
#-- c/c++
|
# -*- Data & Configuration Languages -*-#
|
||||||
cmake
|
[
|
||||||
cmake-language-server
|
#-- nix
|
||||||
gnumake
|
nil
|
||||||
checkmake
|
# rnix-lsp
|
||||||
# c/c++ compiler, required by nvim-treesitter!
|
# nixd
|
||||||
gcc
|
statix # Lints and suggestions for the nix programming language
|
||||||
# c/c++ tools with clang-tools, the unwrapped version won't
|
deadnix # Find and remove unused code in .nix source files
|
||||||
# add alias like `cc` and `c++`, so that it won't conflict with gcc
|
alejandra # Nix Code Formatter
|
||||||
# llvmPackages.clang-unwrapped
|
|
||||||
clang-tools
|
|
||||||
lldb
|
|
||||||
|
|
||||||
#-- python
|
#-- nickel lang
|
||||||
nodePackages.pyright # python language server
|
nickel
|
||||||
(python311.withPackages (
|
|
||||||
ps:
|
|
||||||
with ps; [
|
|
||||||
ruff-lsp
|
|
||||||
black # python formatter
|
|
||||||
# debugpy
|
|
||||||
|
|
||||||
# my commonly used python packages
|
#-- json like
|
||||||
jupyter
|
# terraform # install via brew on macOS
|
||||||
ipython
|
terraform-ls
|
||||||
pandas
|
jsonnet
|
||||||
requests
|
jsonnet-language-server
|
||||||
pyquery
|
taplo # TOML language server / formatter / validator
|
||||||
pyyaml
|
nodePackages.yaml-language-server
|
||||||
boto3
|
actionlint # GitHub Actions linter
|
||||||
|
|
||||||
## emacs's lsp-bridge dependenciesge
|
#-- dockerfile
|
||||||
# epc
|
hadolint # Dockerfile linter
|
||||||
# orjson
|
nodePackages.dockerfile-language-server-nodejs
|
||||||
# sexpdata
|
|
||||||
# six
|
|
||||||
# setuptools
|
|
||||||
# paramiko
|
|
||||||
# rapidfuzz
|
|
||||||
]
|
|
||||||
))
|
|
||||||
|
|
||||||
#-- rust
|
#-- markdown
|
||||||
rust-analyzer
|
marksman # language server for markdown
|
||||||
cargo # rust package manager
|
glow # markdown previewer
|
||||||
rustfmt
|
pandoc # document converter
|
||||||
|
hugo # static site generator
|
||||||
|
|
||||||
#-- nix
|
#-- sql
|
||||||
nil
|
sqlfluff
|
||||||
# rnix-lsp
|
|
||||||
# nixd
|
|
||||||
statix # Lints and suggestions for the nix programming language
|
|
||||||
deadnix # Find and remove unused code in .nix source files
|
|
||||||
alejandra # Nix Code Formatter
|
|
||||||
|
|
||||||
#-- golang
|
#-- protocol buffer
|
||||||
go
|
buf # linting and formatting
|
||||||
gomodifytags
|
]
|
||||||
iferr # generate error handling code for go
|
++
|
||||||
impl # generate function implementation for go
|
#-*- General Purpose Languages -*-#
|
||||||
gotools # contains tools like: godoc, goimports, etc.
|
[
|
||||||
gopls # go language server
|
#-- c/c++
|
||||||
delve # go debugger
|
cmake
|
||||||
|
cmake-language-server
|
||||||
|
gnumake
|
||||||
|
checkmake
|
||||||
|
# c/c++ compiler, required by nvim-treesitter!
|
||||||
|
gcc
|
||||||
|
gdb
|
||||||
|
# c/c++ tools with clang-tools, the unwrapped version won't
|
||||||
|
# add alias like `cc` and `c++`, so that it won't conflict with gcc
|
||||||
|
# llvmPackages.clang-unwrapped
|
||||||
|
clang-tools
|
||||||
|
lldb
|
||||||
|
|
||||||
# -- java
|
#-- python
|
||||||
jdk17
|
nodePackages.pyright # python language server
|
||||||
gradle
|
(python311.withPackages (
|
||||||
maven
|
ps:
|
||||||
spring-boot-cli
|
with ps; [
|
||||||
jdt-language-server
|
ruff-lsp
|
||||||
|
black # python formatter
|
||||||
|
# debugpy
|
||||||
|
|
||||||
#-- lua
|
# my commonly used python packages
|
||||||
stylua
|
jupyter
|
||||||
lua-language-server
|
ipython
|
||||||
|
pandas
|
||||||
|
requests
|
||||||
|
pyquery
|
||||||
|
pyyaml
|
||||||
|
boto3
|
||||||
|
|
||||||
#-- bash
|
## emacs's lsp-bridge dependenciesge
|
||||||
nodePackages.bash-language-server
|
# epc
|
||||||
shellcheck
|
# orjson
|
||||||
shfmt
|
# sexpdata
|
||||||
|
# six
|
||||||
|
# setuptools
|
||||||
|
# paramiko
|
||||||
|
# rapidfuzz
|
||||||
|
]
|
||||||
|
))
|
||||||
|
|
||||||
#-- javascript/typescript --#
|
#-- rust
|
||||||
nodePackages.nodejs
|
rust-analyzer
|
||||||
nodePackages.typescript
|
cargo # rust package manager
|
||||||
nodePackages.typescript-language-server
|
rustfmt
|
||||||
# HTML/CSS/JSON/ESLint language servers extracted from vscode
|
|
||||||
nodePackages.vscode-langservers-extracted
|
|
||||||
nodePackages."@tailwindcss/language-server"
|
|
||||||
emmet-ls
|
|
||||||
|
|
||||||
# -- Lisp like Languages
|
#-- golang
|
||||||
guile
|
go
|
||||||
racket-minimal
|
gomodifytags
|
||||||
fnlfmt # fennel
|
iferr # generate error handling code for go
|
||||||
|
impl # generate function implementation for go
|
||||||
|
gotools # contains tools like: godoc, goimports, etc.
|
||||||
|
gopls # go language server
|
||||||
|
delve # go debugger
|
||||||
|
|
||||||
#-- Others
|
# -- java
|
||||||
taplo # TOML language server / formatter / validator
|
jdk17
|
||||||
nodePackages.yaml-language-server
|
gradle
|
||||||
sqlfluff # SQL linter
|
maven
|
||||||
actionlint # GitHub Actions linter
|
spring-boot-cli
|
||||||
buf # protoc plugin for linting and formatting
|
jdt-language-server
|
||||||
proselint # English prose linter
|
|
||||||
|
|
||||||
#-- Misc
|
#-- zig
|
||||||
tree-sitter # common language parser/highlighter
|
zls
|
||||||
nodePackages.prettier # common code formatter
|
|
||||||
marksman # language server for markdown
|
|
||||||
glow # markdown previewer
|
|
||||||
fzf
|
|
||||||
pandoc # document converter
|
|
||||||
hugo # static site generator
|
|
||||||
|
|
||||||
#-- Optional Requirements:
|
#-- lua
|
||||||
gdu # disk usage analyzer, required by AstroNvim
|
stylua
|
||||||
(ripgrep.override {withPCRE2 = true;}) # recursively searches directories for a regex pattern
|
lua-language-server
|
||||||
|
|
||||||
#-- CloudNative
|
#-- bash
|
||||||
nodePackages.dockerfile-language-server-nodejs
|
nodePackages.bash-language-server
|
||||||
# terraform # install via brew on macOS
|
shellcheck
|
||||||
terraform-ls
|
shfmt
|
||||||
jsonnet
|
]
|
||||||
jsonnet-language-server
|
#-*- Web Development -*-#
|
||||||
hadolint # Dockerfile linter
|
++ [
|
||||||
|
nodePackages.nodejs
|
||||||
|
nodePackages.typescript
|
||||||
|
nodePackages.typescript-language-server
|
||||||
|
# HTML/CSS/JSON/ESLint language servers extracted from vscode
|
||||||
|
nodePackages.vscode-langservers-extracted
|
||||||
|
nodePackages."@tailwindcss/language-server"
|
||||||
|
emmet-ls
|
||||||
|
]
|
||||||
|
# -*- Lisp like Languages -*-#
|
||||||
|
++ [
|
||||||
|
guile
|
||||||
|
racket-minimal
|
||||||
|
fnlfmt # fennel
|
||||||
|
]
|
||||||
|
++ [
|
||||||
|
proselint # English prose linter
|
||||||
|
|
||||||
#-- zig
|
#-- verilog / systemverilog
|
||||||
zls
|
verible
|
||||||
#-- verilog / systemverilog
|
|
||||||
verible
|
#-- Optional Requirements:
|
||||||
gdb
|
nodePackages.prettier # common code formatter
|
||||||
];
|
fzf
|
||||||
|
gdu # disk usage analyzer, required by AstroNvim
|
||||||
|
(ripgrep.override {withPCRE2 = true;}) # recursively searches directories for a regex pattern
|
||||||
|
]
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user