refactor(home/base/tui/edistors): neovim - adjust the classification of lsp/treesitter

This commit is contained in:
Ryan Yin
2024-07-19 16:51:59 +08:00
parent 66949f6b8f
commit 5fcf0d0995
4 changed files with 186 additions and 163 deletions
+6 -2
View File
@@ -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,
} }
+62 -45
View File
@@ -5,7 +5,48 @@
''; '';
}; };
home.packages = with pkgs; [ home.packages = with pkgs; (
# -*- Data & Configuration Languages -*-#
[
#-- nix
nil
# 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
#-- nickel lang
nickel
#-- json like
# terraform # install via brew on macOS
terraform-ls
jsonnet
jsonnet-language-server
taplo # TOML language server / formatter / validator
nodePackages.yaml-language-server
actionlint # GitHub Actions linter
#-- dockerfile
hadolint # Dockerfile linter
nodePackages.dockerfile-language-server-nodejs
#-- markdown
marksman # language server for markdown
glow # markdown previewer
pandoc # document converter
hugo # static site generator
#-- sql
sqlfluff
#-- protocol buffer
buf # linting and formatting
]
++
#-*- General Purpose Languages -*-#
[
#-- c/c++ #-- c/c++
cmake cmake
cmake-language-server cmake-language-server
@@ -13,6 +54,7 @@
checkmake checkmake
# c/c++ compiler, required by nvim-treesitter! # c/c++ compiler, required by nvim-treesitter!
gcc gcc
gdb
# c/c++ tools with clang-tools, the unwrapped version won't # 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 # add alias like `cc` and `c++`, so that it won't conflict with gcc
# llvmPackages.clang-unwrapped # llvmPackages.clang-unwrapped
@@ -53,14 +95,6 @@
cargo # rust package manager cargo # rust package manager
rustfmt rustfmt
#-- nix
nil
# 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 #-- golang
go go
gomodifytags gomodifytags
@@ -77,6 +111,9 @@
spring-boot-cli spring-boot-cli
jdt-language-server jdt-language-server
#-- zig
zls
#-- lua #-- lua
stylua stylua
lua-language-server lua-language-server
@@ -85,8 +122,9 @@
nodePackages.bash-language-server nodePackages.bash-language-server
shellcheck shellcheck
shfmt shfmt
]
#-- javascript/typescript --# #-*- Web Development -*-#
++ [
nodePackages.nodejs nodePackages.nodejs
nodePackages.typescript nodePackages.typescript
nodePackages.typescript-language-server nodePackages.typescript-language-server
@@ -94,45 +132,24 @@
nodePackages.vscode-langservers-extracted nodePackages.vscode-langservers-extracted
nodePackages."@tailwindcss/language-server" nodePackages."@tailwindcss/language-server"
emmet-ls emmet-ls
]
# -- Lisp like Languages # -*- Lisp like Languages -*-#
++ [
guile guile
racket-minimal racket-minimal
fnlfmt # fennel fnlfmt # fennel
]
#-- Others ++ [
taplo # TOML language server / formatter / validator
nodePackages.yaml-language-server
sqlfluff # SQL linter
actionlint # GitHub Actions linter
buf # protoc plugin for linting and formatting
proselint # English prose linter proselint # English prose linter
#-- Misc
tree-sitter # common language parser/highlighter
nodePackages.prettier # common code formatter
marksman # language server for markdown
glow # markdown previewer
fzf
pandoc # document converter
hugo # static site generator
#-- Optional Requirements:
gdu # disk usage analyzer, required by AstroNvim
(ripgrep.override {withPCRE2 = true;}) # recursively searches directories for a regex pattern
#-- CloudNative
nodePackages.dockerfile-language-server-nodejs
# terraform # install via brew on macOS
terraform-ls
jsonnet
jsonnet-language-server
hadolint # Dockerfile linter
#-- zig
zls
#-- verilog / systemverilog #-- verilog / systemverilog
verible verible
gdb
]; #-- Optional Requirements:
nodePackages.prettier # common code formatter
fzf
gdu # disk usage analyzer, required by AstroNvim
(ripgrep.override {withPCRE2 = true;}) # recursively searches directories for a regex pattern
]
);
} }