revert: shell wrapper for neovim's terminal still useless on macOS

This commit is contained in:
Ryan Yin
2023-12-07 10:47:08 +08:00
parent 989989ecc6
commit d13a353921
2 changed files with 98 additions and 130 deletions

View File

@@ -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

View File

@@ -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
'')
];
}; };
}; };
} }