Skip to content

Commit 57b8db6

Browse files
committed
feat(copilot): add lsp support
Available after nix-community/home-manager#9235
1 parent 072a9c8 commit 57b8db6

2 files changed

Lines changed: 170 additions & 3 deletions

File tree

flake.lock

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

modules/home/programs/terminal/tools/github-copilot-cli/default.nix

Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,173 @@ in
7777
context
7878
skills
7979
;
80+
81+
lspServers = {
82+
nixd = {
83+
command = lib.getExe pkgs.nixd;
84+
fileExtensions = {
85+
".nix" = "nix";
86+
};
87+
initializationOptions = {
88+
formatting.command = [ (lib.getExe pkgs.nixfmt) ];
89+
};
90+
};
91+
92+
emmylua-ls = {
93+
command = lib.getExe pkgs.emmylua-ls;
94+
fileExtensions = {
95+
".lua" = "lua";
96+
};
97+
initializationOptions.Lua = {
98+
diagnostics.globals = [
99+
"vim"
100+
"Sbar"
101+
"spoon"
102+
];
103+
workspace.library = [
104+
"/nix/store/*/share/lua/5.1"
105+
"/etc/profiles/per-user/${config.khanelinix.user.name}/share/lua/5.1"
106+
];
107+
};
108+
};
109+
110+
basedpyright = {
111+
command = lib.getExe' pkgs.basedpyright "basedpyright-langserver";
112+
args = [ "--stdio" ];
113+
fileExtensions = {
114+
".py" = "python";
115+
".pyi" = "python";
116+
".pyw" = "python";
117+
};
118+
};
119+
120+
ruff = {
121+
command = lib.getExe pkgs.ruff;
122+
args = [ "server" ];
123+
fileExtensions = {
124+
".py" = "python";
125+
".pyi" = "python";
126+
".pyw" = "python";
127+
};
128+
};
129+
130+
bashls = {
131+
command = lib.getExe pkgs.bash-language-server;
132+
args = [ "start" ];
133+
fileExtensions = {
134+
".bash" = "shellscript";
135+
".sh" = "shellscript";
136+
};
137+
};
138+
139+
clangd = {
140+
command = lib.getExe' pkgs.clang-tools "clangd";
141+
args = [
142+
"--background-index"
143+
"--clang-tidy"
144+
"--header-insertion=iwyu"
145+
"--completion-style=detailed"
146+
"--function-arg-placeholders"
147+
"--fallback-style=llvm"
148+
];
149+
fileExtensions = {
150+
".c" = "c";
151+
".c++" = "cpp";
152+
".cc" = "cpp";
153+
".cpp" = "cpp";
154+
".cxx" = "cpp";
155+
".h" = "c";
156+
".h++" = "cpp";
157+
".hh" = "cpp";
158+
".hpp" = "cpp";
159+
".hxx" = "cpp";
160+
};
161+
};
162+
163+
fish-lsp = {
164+
command = lib.getExe pkgs.fish-lsp;
165+
fileExtensions = {
166+
".fish" = "fish";
167+
};
168+
};
169+
170+
typescript = {
171+
command = lib.getExe pkgs.typescript-language-server;
172+
args = [ "--stdio" ];
173+
fileExtensions = {
174+
".cjs" = "javascript";
175+
".cts" = "typescript";
176+
".js" = "javascript";
177+
".jsx" = "javascriptreact";
178+
".mjs" = "javascript";
179+
".mts" = "typescript";
180+
".ts" = "typescript";
181+
".tsx" = "typescriptreact";
182+
};
183+
};
184+
185+
gopls = {
186+
command = lib.getExe pkgs.gopls;
187+
fileExtensions = {
188+
".go" = "go";
189+
".mod" = "go";
190+
".sum" = "go";
191+
};
192+
};
193+
194+
rust-analyzer = {
195+
command = lib.getExe pkgs.rust-analyzer;
196+
fileExtensions = {
197+
".rs" = "rust";
198+
};
199+
};
200+
201+
csharp = {
202+
command = lib.getExe pkgs.roslyn-ls;
203+
fileExtensions = {
204+
".cs" = "csharp";
205+
".csx" = "csharp";
206+
".cake" = "csharp";
207+
};
208+
};
209+
210+
marksman = {
211+
command = lib.getExe pkgs.marksman;
212+
fileExtensions = {
213+
".md" = "markdown";
214+
".mdx" = "mdx";
215+
};
216+
};
217+
218+
yamlls = {
219+
command = lib.getExe pkgs.yaml-language-server;
220+
args = [ "--stdio" ];
221+
fileExtensions = {
222+
".yaml" = "yaml";
223+
".yml" = "yaml";
224+
};
225+
};
226+
227+
jsonls = {
228+
command = lib.getExe' pkgs.vscode-langservers-extracted "vscode-json-language-server";
229+
args = [ "--stdio" ];
230+
fileExtensions = {
231+
".json" = "json";
232+
".jsonc" = "jsonc";
233+
};
234+
};
235+
236+
taplo = {
237+
command = lib.getExe pkgs.taplo;
238+
args = [
239+
"lsp"
240+
"stdio"
241+
];
242+
fileExtensions = {
243+
".toml" = "toml";
244+
};
245+
};
246+
};
80247
};
81248

82249
programs.bash.initExtra = posixTokenExports;

0 commit comments

Comments
 (0)