Files
nix-config/home/programs/helix.nix
Michał Czyż 720c05f9b0 new nixos dotfile layout
Signed-off-by: Michał Czyż <mike@c2yz.com>
2024-11-04 13:28:47 +01:00

177 lines
4.0 KiB
Nix

{ pkgs, ... }:
{
programs.helix = {
enable = true;
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# languages Configuration
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
languages = {
language = [
{
name = "nix";
auto-format = true;
language-servers = [ "nixd" "nil" ];
formatter = {
command = "${pkgs.nixpkgs-fmt}/bin/nixpkgs-fmt";
# command = "${pkgs.nixfmt-rfc-style}/bin/nixfmt";
# command = "${pkgs.alejandra}/bin/alejandra";
};
}
{
name = "bash";
auto-format = true;
language-servers = [ "bash-language-server" ];
formatter = {
command = "${pkgs.shfmt}/bin/shfmt";
args = [ "-i" "2" "-ci" ];
};
}
{
name = "python";
auto-format = true;
language-servers = [ "pyright" ];
formatter = {
command = "${pkgs.black}/bin/black";
args = [ "--quiet" "-" ];
};
}
{
name = "rust";
auto-format = false;
file-types = [ "rs" ];
language-servers = [ "rust-analyzer" ];
formatter = { command = "${pkgs.rustfmt}/bin/rustfmt"; };
}
{
name = "zig";
auto-format = true;
language-servers = [ "zsl" ];
formatter = { command = "${pkgs.zig}/bin/zig"; };
}
{
name = "html";
auto-format = true;
language-servers = [ "vscode-langservers-extracted" ];
}
{
name = "javascript";
auto-format = true;
language-servers = [ "typescript-language-server" ];
}
];
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Language Server Protocol Configuration
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
language-servers = {
nil = { command = "${pkgs.nixd}/bin/nixd"; };
rust-analyzer = {
config = {
check = { command = "${pkgs.clippy}/bin/cargo-clippy"; };
# cargo.features = "all";
checkOnSave.command = "${pkgs.clippy}/bin/cargo-clippy";
completion.autoimport.enable = true;
};
};
typescript-language-server = {
command = "${pkgs.nodePackages_latest.typescript-language-server}/bin/typescript-language-server";
args = [ "--stdio" ];
};
};
};
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Needed Packages
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
extraPackages = with pkgs; [
# DEBUG
lldb_18
# lldb-vscode :
# c
# cpp
# = < NIX > =
# = Language Server Protocol =
nil
nixd
# = DAP =
# = Formatter =
# nixfmt
nixfmt-rfc-style
# alejandra
# = < Bash > =
# = Language Server Protocol =
nodePackages.bash-language-server
# = DAP =
# = Formatter =
shfmt
# = < Python > =
# = Language Server Protocol =
pyright
# = DAP =
# = Formatter =
black
# = < Rust > =
# = Language Server Protocol =
rust-analyzer
# = DAP =
lldb
# = Formatter =
# rust-fmt
clippy # Good place ?
# = < lua > =
# = Language Server Protocol =
lua-language-server
# = DAP =
# = Formatter =
# = < Zig > =
# = Language Server Protocol =
zls
# = DAP =
# lldb (commented because already called)
# = Formatter =
zig
# = < HTML > =
# = Language Server Protocol =
# vscode-html-language-server
vscode-langservers-extracted
# = DAP =
# = Formatter =
# = < CSS > =
# = Language Server Protocol =
nodePackages_latest.typescript-language-server
# = DAP =
# = Formatter =
# = Language Server Protocol =
docker-compose-language-service
dockerfile-language-server-nodejs
yaml-language-server
ansible-language-server
];
};
}