wrap helix with lsp and formatter, and add some config for helix
This commit is contained in:
parent
67b1830304
commit
a27bc57d15
6 changed files with 176 additions and 28 deletions
|
|
@ -122,8 +122,8 @@
|
||||||
nixosModules.default = import ./nixos/modules;
|
nixosModules.default = import ./nixos/modules;
|
||||||
|
|
||||||
overlays = {
|
overlays = {
|
||||||
modifications = (import ./overlays/modifications { inherit inputs; });
|
modifications = (import ./overlays/modifications { inherit inputs outputs; });
|
||||||
additions = (import ./overlays/additions { inherit inputs; });
|
additions = (import ./overlays/additions { inherit inputs outputs; });
|
||||||
};
|
};
|
||||||
|
|
||||||
nixosConfigurations =
|
nixosConfigurations =
|
||||||
|
|
|
||||||
|
|
@ -17,14 +17,7 @@
|
||||||
};
|
};
|
||||||
extraPackages = lib.mkOption {
|
extraPackages = lib.mkOption {
|
||||||
type = lib.types.listOf lib.types.package;
|
type = lib.types.listOf lib.types.package;
|
||||||
default = with pkgs; [
|
default = [ ];
|
||||||
taplo
|
|
||||||
markdown-oxide
|
|
||||||
nixd
|
|
||||||
deno
|
|
||||||
nixfmt-rfc-style
|
|
||||||
nodePackages_latest.vscode-json-languageserver
|
|
||||||
];
|
|
||||||
example = (
|
example = (
|
||||||
with pkgs;
|
with pkgs;
|
||||||
[
|
[
|
||||||
|
|
@ -53,20 +46,131 @@
|
||||||
config;
|
config;
|
||||||
languages = {
|
languages = {
|
||||||
language-server = {
|
language-server = {
|
||||||
vscode-json-languageserver = {
|
fish-lsp = {
|
||||||
command = "vscode-json-languageserver";
|
command = "fish-lsp";
|
||||||
args = [ "--stdio" ];
|
args = [
|
||||||
config = {
|
"start"
|
||||||
provideFormatter = true;
|
];
|
||||||
json = {
|
|
||||||
validate = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
language = [
|
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";
|
name = "toml";
|
||||||
formatter = {
|
formatter = {
|
||||||
|
|
@ -92,7 +196,7 @@
|
||||||
{
|
{
|
||||||
name = "json";
|
name = "json";
|
||||||
language-servers = [
|
language-servers = [
|
||||||
"vscode-json-languageserver"
|
"vscode-json-language-server"
|
||||||
];
|
];
|
||||||
formatter = {
|
formatter = {
|
||||||
command = "deno";
|
command = "deno";
|
||||||
|
|
@ -107,7 +211,7 @@
|
||||||
{
|
{
|
||||||
name = "jsonc";
|
name = "jsonc";
|
||||||
language-servers = [
|
language-servers = [
|
||||||
"vscode-json-languageserver"
|
"vscode-json-language-server"
|
||||||
];
|
];
|
||||||
formatter = {
|
formatter = {
|
||||||
command = "deno";
|
command = "deno";
|
||||||
|
|
@ -122,6 +226,6 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
home.packages = cfg.extraPackages;
|
# home.packages = cfg.extraPackages;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -58,8 +58,6 @@
|
||||||
git
|
git
|
||||||
vim
|
vim
|
||||||
helix
|
helix
|
||||||
nixd
|
|
||||||
nixfmt-rfc-style
|
|
||||||
|
|
||||||
element-desktop
|
element-desktop
|
||||||
discord-ptb
|
discord-ptb
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,12 @@
|
||||||
{ inputs, ... }:
|
{
|
||||||
|
outputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
final: prev:
|
final: prev:
|
||||||
let
|
let
|
||||||
inherit (final) stdenv;
|
inherit (final) stdenv;
|
||||||
inherit (stdenv.hostPlatform) system;
|
inherit (stdenv.hostPlatform) system;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
helix = inputs.helix.packages."${system}".default;
|
helix = outputs.packages."${system}".helix;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
pinentry-selector = pkgs.callPackage ./pinentry-selector.nix { };
|
pinentry-selector = pkgs.callPackage ./pinentry-selector.nix { };
|
||||||
|
helix = pkgs.callPackage ./helix.nix { inherit inputs; };
|
||||||
}
|
}
|
||||||
// (
|
// (
|
||||||
let
|
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