{ pkgs, config, lib, ... }: { programs.helix = { enable = true; settings = { theme = "ayu_mirage"; editor.cursor-shape = { normal = "block"; insert = "bar"; select = "underline"; }; }; languages = { language-server = { # Bash "bash-language-server" = { command = "${pkgs.bash-language-server}/bin/bash-language-server"; args = [ "start" ]; }; # Rust "rust-analyzer" = { command = "${pkgs.rust-analyzer}/bin/rust-analyzer"; }; # Python "pyright" = { command = "${pkgs.pyright}/bin/pyright"; }; # Nix "nil" = { command = "${pkgs.nil}/bin/nil"; }; # LaTeX "texlab" = { command = "${pkgs.texlab}/bin/texlab"; }; # Markdown "marksman" = { command = "${pkgs.marksman}/bin/marksman"; }; }; language = [ { name = "bash"; language-servers = [ "bash-language-server" ]; auto-format = true; } { name = "rust"; language-servers = [ "rust-analyzer" ]; auto-format = true; } { name = "python"; language-servers = [ "pyright" ]; auto-format = true; } { name = "nix"; language-servers = [ "nil" ]; auto-format = true; } { name = "latex"; language-servers = [ "texlab" ]; auto-format = true; } { name = "markdown"; language-servers = [ "marksman" ]; auto-format = true; } ]; }; }; home.packages = with pkgs; [ zathura ripgrep fd bash-language-server # LSP for Bash rust-analyzer # Rust LSP llvmPackages_latest.lldb # lldb-dap for Rust pyright # Python LSP nil # Nix LSP texlab # LaTeX LSP marksman # Markdown LSP ]; }