mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-04-24 17:58:30 +02:00
revert: shell wrapper for neovim's terminal still useless on macOS
This commit is contained in:
@@ -72,14 +72,6 @@ return {
|
|||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
|
||||||
"akinsho/toggleterm.nvim",
|
|
||||||
opts = function(_, opts)
|
|
||||||
-- custom shell with all neovim's exra packags accessible
|
|
||||||
opts.shell = "nvim-nushell"
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
{
|
||||||
"0x00-ketsu/autosave.nvim",
|
"0x00-ketsu/autosave.nvim",
|
||||||
-- lazy-loading on events
|
-- lazy-loading on events
|
||||||
|
|||||||
@@ -38,143 +38,119 @@
|
|||||||
# ];
|
# ];
|
||||||
|
|
||||||
# Extra packages only available to nvim(won't pollute the global home environment)
|
# Extra packages only available to nvim(won't pollute the global home environment)
|
||||||
extraPackages = with pkgs; let
|
extraPackages = with pkgs;
|
||||||
nvim_extra =
|
[
|
||||||
[
|
#-- c/c++
|
||||||
#-- c/c++
|
cmake
|
||||||
cmake
|
cmake-language-server
|
||||||
cmake-language-server
|
gnumake
|
||||||
gnumake
|
checkmake
|
||||||
checkmake
|
gcc # c/c++ compiler, required by nvim-treesitter!
|
||||||
gcc # c/c++ compiler, required by nvim-treesitter!
|
llvmPackages.clang-unwrapped # c/c++ tools with clang-tools such as clangd
|
||||||
llvmPackages.clang-unwrapped # c/c++ tools with clang-tools such as clangd
|
gdb
|
||||||
gdb
|
lldb
|
||||||
lldb
|
|
||||||
|
|
||||||
#-- python
|
#-- python
|
||||||
nodePackages.pyright # python language server
|
nodePackages.pyright # python language server
|
||||||
python3Packages.black # python formatter
|
python3Packages.black # python formatter
|
||||||
python3Packages.ruff-lsp
|
python3Packages.ruff-lsp
|
||||||
(python3.withPackages (
|
(python3.withPackages (
|
||||||
ps:
|
ps:
|
||||||
with ps; [
|
with ps; [
|
||||||
pynvim # Python client and plugin host for Nvim
|
pynvim # Python client and plugin host for Nvim
|
||||||
|
|
||||||
ipython
|
ipython
|
||||||
pandas
|
pandas
|
||||||
requests
|
requests
|
||||||
pyquery
|
pyquery
|
||||||
pyyaml
|
pyyaml
|
||||||
]
|
]
|
||||||
))
|
))
|
||||||
|
|
||||||
#-- rust
|
#-- rust
|
||||||
rust-analyzer
|
rust-analyzer
|
||||||
cargo # rust package manager
|
cargo # rust package manager
|
||||||
rustfmt
|
rustfmt
|
||||||
|
|
||||||
#-- zig
|
#-- zig
|
||||||
zls
|
zls
|
||||||
|
|
||||||
#-- nix
|
#-- nix
|
||||||
nil
|
nil
|
||||||
rnix-lsp
|
rnix-lsp
|
||||||
# nixd
|
# nixd
|
||||||
statix # Lints and suggestions for the nix programming language
|
statix # Lints and suggestions for the nix programming language
|
||||||
deadnix # Find and remove unused code in .nix source files
|
deadnix # Find and remove unused code in .nix source files
|
||||||
alejandra # Nix Code Formatter
|
alejandra # Nix Code Formatter
|
||||||
|
|
||||||
#-- golang
|
#-- golang
|
||||||
go
|
go
|
||||||
gomodifytags
|
gomodifytags
|
||||||
iferr # generate error handling code for go
|
iferr # generate error handling code for go
|
||||||
impl # generate function implementation for go
|
impl # generate function implementation for go
|
||||||
gotools # contains tools like: godoc, goimports, etc.
|
gotools # contains tools like: godoc, goimports, etc.
|
||||||
gopls # go language server
|
gopls # go language server
|
||||||
delve # go debugger
|
delve # go debugger
|
||||||
|
|
||||||
# -- java
|
# -- java
|
||||||
jdk17
|
jdk17
|
||||||
gradle
|
gradle
|
||||||
maven
|
maven
|
||||||
spring-boot-cli
|
spring-boot-cli
|
||||||
|
|
||||||
#-- lua
|
#-- lua
|
||||||
stylua
|
stylua
|
||||||
lua-language-server
|
lua-language-server
|
||||||
|
|
||||||
#-- bash
|
#-- bash
|
||||||
nodePackages.bash-language-server
|
nodePackages.bash-language-server
|
||||||
shellcheck
|
shellcheck
|
||||||
shfmt
|
shfmt
|
||||||
|
|
||||||
#-- javascript/typescript --#
|
#-- javascript/typescript --#
|
||||||
nodePackages.nodejs
|
nodePackages.nodejs
|
||||||
nodePackages.typescript
|
nodePackages.typescript
|
||||||
nodePackages.typescript-language-server
|
nodePackages.typescript-language-server
|
||||||
# HTML/CSS/JSON/ESLint language servers extracted from vscode
|
# HTML/CSS/JSON/ESLint language servers extracted from vscode
|
||||||
nodePackages.vscode-langservers-extracted
|
nodePackages.vscode-langservers-extracted
|
||||||
nodePackages."@tailwindcss/language-server"
|
nodePackages."@tailwindcss/language-server"
|
||||||
|
|
||||||
#-- CloudNative
|
#-- CloudNative
|
||||||
nodePackages.dockerfile-language-server-nodejs
|
nodePackages.dockerfile-language-server-nodejs
|
||||||
# terraform # install via brew on macOS
|
# terraform # install via brew on macOS
|
||||||
terraform-ls
|
terraform-ls
|
||||||
jsonnet
|
jsonnet
|
||||||
jsonnet-language-server
|
jsonnet-language-server
|
||||||
hadolint # Dockerfile linter
|
hadolint # Dockerfile linter
|
||||||
|
|
||||||
#-- Others
|
#-- Others
|
||||||
taplo # TOML language server / formatter / validator
|
taplo # TOML language server / formatter / validator
|
||||||
nodePackages.yaml-language-server
|
nodePackages.yaml-language-server
|
||||||
sqlfluff # SQL linter
|
sqlfluff # SQL linter
|
||||||
actionlint # GitHub Actions linter
|
actionlint # GitHub Actions linter
|
||||||
buf # protoc plugin for linting and formatting
|
buf # protoc plugin for linting and formatting
|
||||||
proselint # English prose linter
|
proselint # English prose linter
|
||||||
guile # scheme language
|
guile # scheme language
|
||||||
|
|
||||||
#-- Misc
|
#-- Misc
|
||||||
tree-sitter # common language parser/highlighter
|
tree-sitter # common language parser/highlighter
|
||||||
nodePackages.prettier # common code formatter
|
nodePackages.prettier # common code formatter
|
||||||
marksman # language server for markdown
|
marksman # language server for markdown
|
||||||
glow # markdown previewer
|
glow # markdown previewer
|
||||||
fzf
|
fzf
|
||||||
|
|
||||||
#-- Optional Requirements:
|
#-- Optional Requirements:
|
||||||
gdu # disk usage analyzer, required by AstroNvim
|
gdu # disk usage analyzer, required by AstroNvim
|
||||||
ripgrep # fast search tool, required by AstroNvim's '<leader>fw'(<leader> is space key)
|
ripgrep # fast search tool, required by AstroNvim's '<leader>fw'(<leader> is space key)
|
||||||
|
]
|
||||||
|
++ (
|
||||||
|
if pkgs.stdenv.isDarwin
|
||||||
|
then []
|
||||||
|
else [
|
||||||
|
#-- verilog / systemverilog
|
||||||
|
verible
|
||||||
]
|
]
|
||||||
++ (
|
);
|
||||||
if pkgs.stdenv.isDarwin
|
|
||||||
then []
|
|
||||||
else [
|
|
||||||
#-- verilog / systemverilog
|
|
||||||
verible
|
|
||||||
]
|
|
||||||
);
|
|
||||||
in
|
|
||||||
nvim_extra
|
|
||||||
++ [
|
|
||||||
# NOTE: shells installed by nix-darwin will ignore the `PATH` env passed by parent process,
|
|
||||||
# it's likely a bug of nix-darwin, `PATH` passing on NixOS works fine.
|
|
||||||
#
|
|
||||||
# So to access the packages we installed here in neovim's shell session(`:terminal`),
|
|
||||||
# we have to create a shell wrapper with the packages in `PATH` env.
|
|
||||||
(pkgs.runCommand "nvim-shell" rec {
|
|
||||||
nativeBuildInputs =
|
|
||||||
nvim_extra
|
|
||||||
++ [
|
|
||||||
pkgs.nushell
|
|
||||||
pkgs.bash
|
|
||||||
];
|
|
||||||
PATH = lib.makeBinPath nativeBuildInputs;
|
|
||||||
} ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
|
|
||||||
ln -s ${pkgs.nushell}/bin/nu $out/bin/nvim-nushell
|
|
||||||
ln -s ${pkgs.bash}/bin/bash $out/bin/nvim-bash
|
|
||||||
'')
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user