wrap helix with lsp and formatter, and add some config for helix
This commit is contained in:
parent
ca525c5789
commit
9c60b5872c
6 changed files with 176 additions and 28 deletions
|
|
@ -122,8 +122,8 @@
|
|||
nixosModules.default = import ./nixos/modules;
|
||||
|
||||
overlays = {
|
||||
modifications = (import ./overlays/modifications { inherit inputs; });
|
||||
additions = (import ./overlays/additions { inherit inputs; });
|
||||
modifications = (import ./overlays/modifications { inherit inputs outputs; });
|
||||
additions = (import ./overlays/additions { inherit inputs outputs; });
|
||||
};
|
||||
|
||||
nixosConfigurations =
|
||||
|
|
|
|||
|
|
@ -17,14 +17,7 @@
|
|||
};
|
||||
extraPackages = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.package;
|
||||
default = with pkgs; [
|
||||
taplo
|
||||
markdown-oxide
|
||||
nixd
|
||||
deno
|
||||
nixfmt-rfc-style
|
||||
nodePackages_latest.vscode-json-languageserver
|
||||
];
|
||||
default = [ ];
|
||||
example = (
|
||||
with pkgs;
|
||||
[
|
||||
|
|
@ -53,20 +46,131 @@
|
|||
config;
|
||||
languages = {
|
||||
language-server = {
|
||||
vscode-json-languageserver = {
|
||||
command = "vscode-json-languageserver";
|
||||
args = [ "--stdio" ];
|
||||
config = {
|
||||
provideFormatter = true;
|
||||
json = {
|
||||
validate = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
fish-lsp = {
|
||||
command = "fish-lsp";
|
||||
args = [
|
||||
"start"
|
||||
];
|
||||
};
|
||||
};
|
||||
language = [
|
||||
{
|
||||
name = "nix";
|
||||
formatter = {
|
||||
command = "nixfmt";
|
||||
args = [ "-" ];
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "xml";
|
||||
formatter = {
|
||||
command = "xmllint";
|
||||
args = [
|
||||
"--format"
|
||||
"-"
|
||||
];
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "typst";
|
||||
formatter = {
|
||||
command = "typstyle";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "c";
|
||||
formatter = {
|
||||
command = "clang-format";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "cpp";
|
||||
formatter = {
|
||||
command = "clang-format";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "python";
|
||||
formatter = {
|
||||
command = "ruff";
|
||||
args = [
|
||||
"format"
|
||||
"-s"
|
||||
"--line-length"
|
||||
"88"
|
||||
"-"
|
||||
];
|
||||
};
|
||||
language-servers = [
|
||||
"pyright"
|
||||
"ruff"
|
||||
];
|
||||
}
|
||||
{
|
||||
name = "go";
|
||||
formatter = {
|
||||
command = "goimports";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "awk";
|
||||
formatter = {
|
||||
command = "awk";
|
||||
timeout = 5;
|
||||
args = [
|
||||
"--file=/dev/stdin"
|
||||
"--pretty-print=/dev/stdout"
|
||||
];
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "fish";
|
||||
language-servers = [
|
||||
"fish-lsp"
|
||||
];
|
||||
}
|
||||
{
|
||||
name = "yaml";
|
||||
formatter = {
|
||||
command = "deno";
|
||||
args = [
|
||||
"fmt"
|
||||
"-"
|
||||
"--ext"
|
||||
"yaml"
|
||||
];
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "html";
|
||||
formatter = {
|
||||
command = "deno";
|
||||
args = [
|
||||
"fmt"
|
||||
"-"
|
||||
"--ext"
|
||||
"html"
|
||||
];
|
||||
};
|
||||
language-servers = [
|
||||
"vscode-html-language-server"
|
||||
];
|
||||
}
|
||||
{
|
||||
name = "css";
|
||||
formatter = {
|
||||
command = "deno";
|
||||
args = [
|
||||
"fmt"
|
||||
"-"
|
||||
"--ext"
|
||||
"css"
|
||||
];
|
||||
};
|
||||
language-servers = [
|
||||
"vscode-css-language-server"
|
||||
];
|
||||
}
|
||||
{
|
||||
name = "toml";
|
||||
formatter = {
|
||||
|
|
@ -92,7 +196,7 @@
|
|||
{
|
||||
name = "json";
|
||||
language-servers = [
|
||||
"vscode-json-languageserver"
|
||||
"vscode-json-language-server"
|
||||
];
|
||||
formatter = {
|
||||
command = "deno";
|
||||
|
|
@ -107,7 +211,7 @@
|
|||
{
|
||||
name = "jsonc";
|
||||
language-servers = [
|
||||
"vscode-json-languageserver"
|
||||
"vscode-json-language-server"
|
||||
];
|
||||
formatter = {
|
||||
command = "deno";
|
||||
|
|
@ -122,6 +226,6 @@
|
|||
];
|
||||
};
|
||||
};
|
||||
home.packages = cfg.extraPackages;
|
||||
# home.packages = cfg.extraPackages;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -58,8 +58,6 @@
|
|||
git
|
||||
vim
|
||||
helix
|
||||
nixd
|
||||
nixfmt-rfc-style
|
||||
|
||||
element-desktop
|
||||
discord-ptb
|
||||
|
|
|
|||
|
|
@ -1,9 +1,12 @@
|
|||
{ inputs, ... }:
|
||||
{
|
||||
outputs,
|
||||
...
|
||||
}:
|
||||
final: prev:
|
||||
let
|
||||
inherit (final) stdenv;
|
||||
inherit (stdenv.hostPlatform) system;
|
||||
in
|
||||
{
|
||||
helix = inputs.helix.packages."${system}".default;
|
||||
helix = outputs.packages."${system}".helix;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
}:
|
||||
{
|
||||
pinentry-selector = pkgs.callPackage ./pinentry-selector.nix { };
|
||||
helix = pkgs.callPackage ./helix.nix { inherit inputs; };
|
||||
}
|
||||
// (
|
||||
let
|
||||
|
|
|
|||
42
pkgs/helix.nix
Normal file
42
pkgs/helix.nix
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
pkgs.runCommand "helix-wrapped"
|
||||
{
|
||||
buildInputs = [ pkgs.makeWrapper ];
|
||||
}
|
||||
''
|
||||
mkdir -p $out/bin
|
||||
makeWrapper "${lib.getExe inputs.helix.packages."${pkgs.system}".default}" $out/bin/hx \
|
||||
--prefix PATH : ${
|
||||
lib.makeBinPath (
|
||||
with pkgs;
|
||||
[
|
||||
clang-tools
|
||||
libxml2
|
||||
typstyle
|
||||
pyright
|
||||
ruff
|
||||
gotools
|
||||
yaml-language-server
|
||||
taplo
|
||||
markdown-oxide
|
||||
nixd
|
||||
deno
|
||||
nixfmt-rfc-style
|
||||
vscode-langservers-extracted
|
||||
fish-lsp
|
||||
gopls
|
||||
golangci-lint-langserver
|
||||
tinymist
|
||||
delve
|
||||
lldb
|
||||
rust-analyzer
|
||||
nil
|
||||
]
|
||||
)
|
||||
}
|
||||
''
|
||||
Loading…
Add table
Add a link
Reference in a new issue