Skip to content

Commit 9355fa2

Browse files
nixd: replace nixpkgs-fmt with nixfmt (#569)
--------- Co-authored-by: Yingchi Long <[email protected]>
1 parent 5b5e4a4 commit 9355fa2

File tree

8 files changed

+135
-195
lines changed

8 files changed

+135
-195
lines changed

default.nix

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
meson,
99
ninja,
1010
nix,
11-
nixpkgs-fmt,
1211
pkg-config,
1312
nlohmann_json,
1413
python312,
@@ -29,10 +28,7 @@ stdenv.mkDerivation {
2928
pkg-config
3029
];
3130

32-
nativeCheckInputs = [
33-
lit
34-
nixpkgs-fmt
35-
];
31+
nativeCheckInputs = [ lit ];
3632

3733
buildInputs = [
3834
nix

flake.nix

Lines changed: 104 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -12,105 +12,112 @@
1212
};
1313
};
1414

15-
outputs = { nixpkgs, flake-parts, treefmt-nix, ... }@inputs: flake-parts.lib.mkFlake { inherit inputs; } {
16-
imports = [
17-
inputs.flake-parts.flakeModules.easyOverlay
18-
inputs.flake-root.flakeModule
19-
];
20-
perSystem = { config, pkgs, ... }:
21-
let
22-
inherit (pkgs) nixVersions llvmPackages_16 callPackage stdenv;
23-
nix = nixVersions.nix_2_19;
24-
llvmPackages = llvmPackages_16;
25-
nixf = callPackage ./libnixf { };
26-
nixt = callPackage ./libnixt {
27-
inherit nix;
28-
};
29-
nixd = callPackage ./nixd {
30-
inherit nix nixf nixt;
31-
inherit llvmPackages;
32-
};
33-
nixdMono = callPackage ./. {
34-
inherit nix llvmPackages;
35-
};
36-
nixdLLVM = nixdMono.override {
37-
stdenv = if stdenv.isDarwin then stdenv else llvmPackages.stdenv;
38-
};
39-
regressionDeps = with pkgs; [
40-
clang-tools
41-
nixpkgs-fmt
42-
lit
43-
];
44-
shellOverride = old: {
45-
nativeBuildInputs = old.nativeBuildInputs ++ regressionDeps;
46-
shellHook = ''
47-
export PATH="${pkgs.clang-tools}/bin:$PATH"
48-
export NIX_SRC=${nix.src}
49-
export NIX_PATH=nixpkgs=${nixpkgs}
50-
'';
51-
hardeningDisable = [ "fortify" ];
52-
};
53-
treefmtEval = treefmt-nix.lib.evalModule pkgs ./treefmt.nix;
54-
in
55-
{
56-
packages.default = nixd;
57-
overlayAttrs = {
58-
inherit (config.packages) nixd;
59-
};
60-
packages = { inherit nixd nixf nixt; };
15+
outputs =
16+
{
17+
nixpkgs,
18+
flake-parts,
19+
treefmt-nix,
20+
...
21+
}@inputs:
22+
flake-parts.lib.mkFlake { inherit inputs; } {
23+
imports = [
24+
inputs.flake-parts.flakeModules.easyOverlay
25+
inputs.flake-root.flakeModule
26+
];
27+
perSystem =
28+
{ config, pkgs, ... }:
29+
let
30+
inherit (pkgs)
31+
nixVersions
32+
llvmPackages_16
33+
callPackage
34+
stdenv
35+
;
36+
nix = nixVersions.nix_2_19;
37+
llvmPackages = llvmPackages_16;
38+
nixf = callPackage ./libnixf { };
39+
nixt = callPackage ./libnixt { inherit nix; };
40+
nixd = callPackage ./nixd {
41+
inherit nix nixf nixt;
42+
inherit llvmPackages;
43+
};
44+
nixdMono = callPackage ./. { inherit nix llvmPackages; };
45+
nixdLLVM = nixdMono.override { stdenv = if stdenv.isDarwin then stdenv else llvmPackages.stdenv; };
46+
regressionDeps = with pkgs; [
47+
clang-tools
48+
lit
49+
nixfmt-rfc-style
50+
];
51+
shellOverride = old: {
52+
nativeBuildInputs = old.nativeBuildInputs ++ regressionDeps;
53+
shellHook = ''
54+
export PATH="${pkgs.clang-tools}/bin:$PATH"
55+
export NIX_SRC=${nix.src}
56+
export NIX_PATH=nixpkgs=${nixpkgs}
57+
'';
58+
hardeningDisable = [ "fortify" ];
59+
};
60+
treefmtEval = treefmt-nix.lib.evalModule pkgs ./treefmt.nix;
61+
in
62+
{
63+
packages.default = nixd;
64+
overlayAttrs = {
65+
inherit (config.packages) nixd;
66+
};
67+
packages = {
68+
inherit nixd nixf nixt;
69+
};
6170

62-
devShells.llvm = nixdLLVM.overrideAttrs shellOverride;
71+
devShells.llvm = nixdLLVM.overrideAttrs shellOverride;
6372

64-
devShells.default = nixdMono.overrideAttrs shellOverride;
73+
devShells.default = nixdMono.overrideAttrs shellOverride;
6574

66-
devShells.nvim = pkgs.mkShell {
67-
nativeBuildInputs = [
68-
nixd
69-
pkgs.nixpkgs-fmt
70-
pkgs.git
71-
(import ./nixd/docs/editors/nvim-lsp.nix { inherit pkgs; })
72-
];
73-
inputsFrom = [
74-
config.flake-root.devShell
75-
];
76-
shellHook = ''
77-
echo -e "\n\033[1;31mDuring the first time nixd launches, the flake inputs will be fetched from the internet, this is rather slow.\033[0m"
78-
echo -e "\033[1;34mEntering the nvim test environment...\033[0m"
79-
cd $FLAKE_ROOT
80-
export GIT_REPO=https://github.com/nix-community/nixd.git
81-
export EXAMPLES_PATH=nixd/docs/examples
82-
export WORK_TEMP=/tmp/NixOS_Home-Manager
83-
if [ -d "$WORK_TEMP" ]; then
84-
rm -rf $WORK_TEMP
85-
fi
86-
mkdir -p $WORK_TEMP
87-
cp -r $EXAMPLES_PATH/NixOS_Home-Manager/* $WORK_TEMP/ 2>/dev/null
88-
if [[ $? -ne 0 ]]; then
89-
export GIT_DIR=$WORK_TEMP/.git
90-
export GIT_WORK_TREE=/tmp/NixOS_Home-Manager
91-
git init
92-
git config core.sparseCheckout true
93-
git remote add origin $GIT_REPO
94-
echo "$EXAMPLES_PATH/NixOS_Home-Manager/" >$GIT_DIR/info/sparse-checkout
95-
git pull origin main
96-
cp $GIT_WORK_TREE\/$EXAMPLES_PATH/NixOS_Home-Manager/* $GIT_WORK_TREE 2>/dev/null
97-
rm -rf $GIT_WORK_TREE/nixd
98-
fi
99-
cd $WORK_TEMP
100-
echo -e "\033[1;32mNow, you can edit the nix file by running the following command:\033[0m"
101-
echo -e "\033[1;33m'nvim-lsp flake.nix'\033[0m"
102-
echo -e "\033[1;34mEnvironment setup complete.\033[0m"
103-
'';
104-
};
105-
devShells.vscodium = pkgs.mkShell {
106-
nativeBuildInputs = [
107-
nixd
108-
pkgs.nixpkgs-fmt
109-
(import ./nixd/docs/editors/vscodium.nix { inherit pkgs; })
110-
];
75+
devShells.nvim = pkgs.mkShell {
76+
nativeBuildInputs = [
77+
nixd
78+
pkgs.nixfmt-rfc-style
79+
pkgs.git
80+
(import ./nixd/docs/editors/nvim-lsp.nix { inherit pkgs; })
81+
];
82+
inputsFrom = [ config.flake-root.devShell ];
83+
shellHook = ''
84+
echo -e "\n\033[1;31mDuring the first time nixd launches, the flake inputs will be fetched from the internet, this is rather slow.\033[0m"
85+
echo -e "\033[1;34mEntering the nvim test environment...\033[0m"
86+
cd $FLAKE_ROOT
87+
export GIT_REPO=https://github.com/nix-community/nixd.git
88+
export EXAMPLES_PATH=nixd/docs/examples
89+
export WORK_TEMP=/tmp/NixOS_Home-Manager
90+
if [ -d "$WORK_TEMP" ]; then
91+
rm -rf $WORK_TEMP
92+
fi
93+
mkdir -p $WORK_TEMP
94+
cp -r $EXAMPLES_PATH/NixOS_Home-Manager/* $WORK_TEMP/ 2>/dev/null
95+
if [[ $? -ne 0 ]]; then
96+
export GIT_DIR=$WORK_TEMP/.git
97+
export GIT_WORK_TREE=/tmp/NixOS_Home-Manager
98+
git init
99+
git config core.sparseCheckout true
100+
git remote add origin $GIT_REPO
101+
echo "$EXAMPLES_PATH/NixOS_Home-Manager/" >$GIT_DIR/info/sparse-checkout
102+
git pull origin main
103+
cp $GIT_WORK_TREE\/$EXAMPLES_PATH/NixOS_Home-Manager/* $GIT_WORK_TREE 2>/dev/null
104+
rm -rf $GIT_WORK_TREE/nixd
105+
fi
106+
cd $WORK_TEMP
107+
echo -e "\033[1;32mNow, you can edit the nix file by running the following command:\033[0m"
108+
echo -e "\033[1;33m'nvim-lsp flake.nix'\033[0m"
109+
echo -e "\033[1;34mEnvironment setup complete.\033[0m"
110+
'';
111+
};
112+
devShells.vscodium = pkgs.mkShell {
113+
nativeBuildInputs = [
114+
nixd
115+
pkgs.nixfmt-rfc-style
116+
(import ./nixd/docs/editors/vscodium.nix { inherit pkgs; })
117+
];
118+
};
119+
formatter = treefmtEval.config.build.wrapper;
111120
};
112-
formatter = treefmtEval.config.build.wrapper;
113-
};
114-
systems = nixpkgs.lib.systems.flakeExposed;
115-
};
121+
systems = nixpkgs.lib.systems.flakeExposed;
122+
};
116123
}

nixd/docs/configuration.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ For vscode users you should write `settings.json`[^settings] like this:
5959
"nixd": {
6060
"formatting": {
6161
// This is the default if ommited.
62-
"command": [ "nixpkgs-fmt" ]
62+
"command": [ "nixfmt" ]
6363
},
6464
"options": {
6565
// By default, this entriy will be read from `import <nixpkgs> { }`
@@ -94,7 +94,7 @@ nvim_lsp.nixd.setup({
9494
expr = "import <nixpkgs> { }",
9595
},
9696
formatting = {
97-
command = { "nixpkgs-fmt" },
97+
command = { "nixfmt" },
9898
},
9999
options = {
100100
nixos = {
@@ -130,7 +130,7 @@ nvim_lsp.nixd.setup({
130130
},
131131
"formatting": {
132132
// Which command you would like to do formatting
133-
"command": [ "nixpkgs-fmt" ]
133+
"command": [ "nixfmt" ]
134134
},
135135
// Tell the language server your desired option set, for completion
136136
// This is lazily evaluated.

nixd/docs/editors/nvim-lsp.nix

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
{ pkgs ? import <nixpkgs> { } }:
1+
{
2+
pkgs ? import <nixpkgs> { },
3+
}:
24
let
35
neovim = pkgs.neovim.override {
46
configure = {
@@ -9,9 +11,7 @@ let
911
'';
1012

1113
packages.myPlugins.start = with pkgs.vimPlugins; [
12-
(nvim-treesitter.withPlugins (parsers: [
13-
parsers.nix
14-
]))
14+
(nvim-treesitter.withPlugins (parsers: [ parsers.nix ]))
1515
friendly-snippets
1616
luasnip
1717
nvim-cmp
@@ -107,7 +107,7 @@ let
107107
globalstatus = true,
108108
},
109109
})
110-
110+
111111
----------------------
112112
-- About bufferline --
113113
----------------------
@@ -368,7 +368,7 @@ let
368368
expr = "import <nixpkgs> { }",
369369
},
370370
formatting = {
371-
command = { "nixpkgs-fmt" },
371+
command = { "nixfmt" },
372372
},
373373
options = {
374374
nixos = {
@@ -401,77 +401,76 @@ let
401401
},
402402
})
403403
vim.cmd([[ colorscheme nord ]])
404-
404+
405405
local keymap = vim.keymap.set
406-
406+
407407
-- Lsp finder
408408
-- Find the symbol definition, implementation, reference.
409409
-- If there is no implementation, it will hide.
410410
-- When you use action in finder like open, vsplit, then you can use <C-t> to jump back.
411411
keymap("n", "gh", "<cmd>Lspsaga lsp_finder<CR>", { silent = true, desc = "Lsp finder" })
412-
412+
413413
-- Code action
414414
keymap("n", "<leader>ca", "<cmd>Lspsaga code_action<CR>", { silent = true, desc = "Code action" })
415415
keymap("v", "<leader>ca", "<cmd>Lspsaga code_action<CR>", { silent = true, desc = "Code action" })
416-
416+
417417
-- Rename
418418
keymap("n", "gr", "<cmd>Lspsaga rename<CR>", { silent = true, desc = "Rename" })
419419
-- Rename word in whole project
420420
keymap("n", "gr", "<cmd>Lspsaga rename ++project<CR>", { silent = true, desc = "Rename in project" })
421-
421+
422422
-- Peek definition
423423
keymap("n", "gD", "<cmd>Lspsaga peek_definition<CR>", { silent = true, desc = "Peek definition" })
424-
424+
425425
-- Go to definition
426426
keymap("n", "gd", "<cmd>Lspsaga goto_definition<CR>", { silent = true, desc = "Go to definition" })
427-
427+
428428
-- Show line diagnostics
429429
keymap("n", "<leader>sl", "<cmd>Lspsaga show_line_diagnostics<CR>", { silent = true, desc = "Show line diagnostics" })
430-
430+
431431
-- Show cursor diagnostics
432432
keymap(
433433
"n",
434434
"<leader>sc",
435435
"<cmd>Lspsaga show_cursor_diagnostics<CR>",
436436
{ silent = true, desc = "Show cursor diagnostic" }
437437
)
438-
438+
439439
-- Show buffer diagnostics
440440
keymap("n", "<leader>sb", "<cmd>Lspsaga show_buf_diagnostics<CR>", { silent = true, desc = "Show buffer diagnostic" })
441-
441+
442442
-- Diagnostic jump prev
443443
keymap("n", "[e", "<cmd>Lspsaga diagnostic_jump_prev<CR>", { silent = true, desc = "Diagnostic jump prev" })
444-
444+
445445
-- Diagnostic jump next
446446
keymap("n", "]e", "<cmd>Lspsaga diagnostic_jump_next<CR>", { silent = true, desc = "Diagnostic jump next" })
447-
447+
448448
-- Goto prev error
449449
keymap("n", "[E", function()
450450
require("lspsaga.diagnostic"):goto_prev({ severity = vim.diagnostic.severity.ERROR })
451451
end, { silent = true, desc = "Goto prev error" })
452-
452+
453453
-- Goto next error
454454
keymap("n", "]E", function()
455455
require("lspsaga.diagnostic"):goto_next({ severity = vim.diagnostic.severity.ERROR })
456456
end, { silent = true, desc = "Goto next error" })
457-
457+
458458
-- Toggle outline
459459
keymap("n", "ss", "<cmd>Lspsaga outline<CR>", { silent = true, desc = "Toggle outline" })
460-
460+
461461
-- Hover doc
462462
keymap("n", "K", "<cmd>Lspsaga hover_doc ++keep<CR>", { silent = true, desc = "Hover doc" })
463-
463+
464464
-- Incoming calls
465465
keymap("n", "<Leader>ci", "<cmd>Lspsaga incoming_calls<CR>", { silent = true, desc = "Incoming calls" })
466-
466+
467467
-- Outgoing calls
468468
keymap("n", "<Leader>co", "<cmd>Lspsaga outgoing_calls<CR>", { silent = true, desc = "Outgoing calls" })
469-
469+
470470
-- Float terminal
471471
keymap("n", "<A-d>", "<cmd>Lspsaga term_toggle<CR>", { silent = true, desc = "Float terminal" })
472472
keymap("t", "<A-d>", "<cmd>Lspsaga term_toggle<CR>", { silent = true, desc = "Float terminal" })
473473
'';
474-
475474
in
476475
pkgs.runCommand "nvim-lsp" { } ''
477476
mkdir -p $out/bin

nixd/docs/nixd-schema.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
"formatting": {
4444
"command": {
4545
"description": "Which command you would like to do formatting",
46-
"default": "nixpkgs-fmt",
46+
"default": "nixfmt",
4747
"type": "string"
4848
}
4949
},

0 commit comments

Comments
 (0)