feat: add language servers
This commit is contained in:
parent
106039c3ae
commit
9f60a6d13b
2 changed files with 16 additions and 8 deletions
|
@ -12,6 +12,7 @@ injections: ?[:0]const u8,
|
|||
first_line_matches: ?FirstLineMatch = null,
|
||||
comment: []const u8,
|
||||
formatter: ?[]const []const u8,
|
||||
language_server: ?[]const []const u8,
|
||||
|
||||
pub fn get_by_name(name: []const u8) ?*const FileType {
|
||||
for (file_types) |*file_type|
|
||||
|
@ -81,14 +82,6 @@ const FirstLineMatch = struct {
|
|||
content: ?[]const u8 = null,
|
||||
};
|
||||
|
||||
fn FormatterCmd(comptime args: anytype) []const []const u8 {
|
||||
const cmd: []const []const u8 = &[_][]const u8{};
|
||||
inline for (args) |arg| {
|
||||
cmd = cmd ++ arg;
|
||||
}
|
||||
return cmd;
|
||||
}
|
||||
|
||||
pub const file_types = load_file_types(@import("file_types.zig"));
|
||||
|
||||
fn vec(comptime args: anytype) []const []const u8 {
|
||||
|
@ -123,6 +116,7 @@ fn load_file_types(comptime Namespace: type) []const FileType {
|
|||
.injections = if (@hasField(@TypeOf(args), "injections")) @embedFile(args.injections) else null,
|
||||
.first_line_matches = if (@hasField(@TypeOf(args), "first_line_matches")) args.first_line_matches else null,
|
||||
.formatter = if (@hasField(@TypeOf(args), "formatter")) vec(args.formatter) else null,
|
||||
.language_server = if (@hasField(@TypeOf(args), "language_server")) vec(args.language_server) else null,
|
||||
};
|
||||
i += 1;
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ pub const bash = .{
|
|||
.extensions = .{ "sh", "bash", ".profile" },
|
||||
.comment = "#",
|
||||
.first_line_matches = .{ .prefix = "#!", .content = "sh" },
|
||||
.language_server = .{"bash-language-server"},
|
||||
};
|
||||
|
||||
pub const c = .{
|
||||
|
@ -16,6 +17,7 @@ pub const c = .{
|
|||
.extensions = .{ "c", "h" },
|
||||
.comment = "//",
|
||||
.formatter = .{"clang-format"},
|
||||
.language_server = .{"clangd"},
|
||||
};
|
||||
|
||||
pub const @"c-sharp" = .{
|
||||
|
@ -23,6 +25,7 @@ pub const @"c-sharp" = .{
|
|||
.icon = "",
|
||||
.extensions = .{"cs"},
|
||||
.comment = "//",
|
||||
.language_server = .{ "omnisharp", "-lsp" },
|
||||
};
|
||||
|
||||
pub const conf = .{
|
||||
|
@ -41,6 +44,7 @@ pub const cpp = .{
|
|||
.comment = "//",
|
||||
.injections = "tree-sitter-cpp/queries/injections.scm",
|
||||
.formatter = .{"clang-format"},
|
||||
.language_server = .{"clangd"},
|
||||
};
|
||||
|
||||
pub const css = .{
|
||||
|
@ -96,6 +100,7 @@ pub const go = .{
|
|||
.icon = "",
|
||||
.extensions = .{"go"},
|
||||
.comment = "//",
|
||||
.language_server = .{"gopls"},
|
||||
};
|
||||
|
||||
pub const haskell = .{
|
||||
|
@ -103,6 +108,7 @@ pub const haskell = .{
|
|||
.icon = "",
|
||||
.extensions = .{"hs"},
|
||||
.comment = "--",
|
||||
.language_server = .{"haskell-language-server-wrapper"},
|
||||
};
|
||||
|
||||
pub const html = .{
|
||||
|
@ -126,11 +132,13 @@ pub const javascript = .{
|
|||
.extensions = .{"js"},
|
||||
.comment = "//",
|
||||
.injections = "tree-sitter-javascript/queries/injections.scm",
|
||||
.language_server = .{ "deno", "lsp" },
|
||||
};
|
||||
|
||||
pub const json = .{
|
||||
.extensions = .{"json"},
|
||||
.comment = "//",
|
||||
.language_server = .{ "deno", "lsp" },
|
||||
};
|
||||
|
||||
pub const lua = .{
|
||||
|
@ -140,6 +148,7 @@ pub const lua = .{
|
|||
.comment = "--",
|
||||
.injections = "tree-sitter-lua/queries/injections.scm",
|
||||
.first_line_matches = .{ .prefix = "--", .content = "lua" },
|
||||
.language_server = .{"lua-lsp"},
|
||||
};
|
||||
|
||||
pub const make = .{
|
||||
|
@ -154,6 +163,7 @@ pub const markdown = .{
|
|||
.comment = "<!--",
|
||||
.highlights = "tree-sitter-markdown/tree-sitter-markdown/queries/highlights.scm",
|
||||
.injections = "tree-sitter-markdown/tree-sitter-markdown/queries/injections.scm",
|
||||
.language_server = .{ "deno", "lsp" },
|
||||
};
|
||||
|
||||
pub const @"markdown-inline" = .{
|
||||
|
@ -227,6 +237,7 @@ pub const python = .{
|
|||
.extensions = .{"py"},
|
||||
.comment = "#",
|
||||
.first_line_matches = .{ .prefix = "#!", .content = "/bin/bash" },
|
||||
.language_server = .{"pylsp"},
|
||||
};
|
||||
|
||||
pub const regex = .{
|
||||
|
@ -247,6 +258,7 @@ pub const rust = .{
|
|||
.extensions = .{"rs"},
|
||||
.comment = "//",
|
||||
.injections = "tree-sitter-rust/queries/injections.scm",
|
||||
.language_server = .{"rust-analyzer"},
|
||||
};
|
||||
|
||||
pub const scheme = .{
|
||||
|
@ -269,6 +281,7 @@ pub const typescript = .{
|
|||
.icon = "",
|
||||
.extensions = .{ "ts", "tsx" },
|
||||
.comment = "//",
|
||||
.language_server = .{ "deno", "lsp" },
|
||||
};
|
||||
|
||||
pub const xml = .{
|
||||
|
@ -285,6 +298,7 @@ pub const zig = .{
|
|||
.extensions = .{ "zig", "zon" },
|
||||
.comment = "//",
|
||||
.formatter = .{ "zig", "fmt", "--stdin" },
|
||||
.language_server = .{"zls"},
|
||||
.injections = "tree-sitter-zig/queries/injections.scm",
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue