feat(nvim): typst; tidy language specific configurations
This commit is contained in:
17
.lazy.lua
17
.lazy.lua
@@ -1,3 +1,20 @@
|
|||||||
|
vim.lsp.config("nixd", {
|
||||||
|
settings = {
|
||||||
|
nixd = {
|
||||||
|
nixpkgs = {
|
||||||
|
expr = "import <nixpkgs> { }",
|
||||||
|
},
|
||||||
|
options = {
|
||||||
|
nixos = {
|
||||||
|
expr = '(builtins.getFlake ("git+file://" + toString ./.)).nixosConfigurations.'
|
||||||
|
.. vim.uv.os_gethostname()
|
||||||
|
.. ".options",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
"folke/lazydev.nvim",
|
"folke/lazydev.nvim",
|
||||||
|
|||||||
@@ -4,9 +4,6 @@ vim.api.nvim_create_autocmd("BufWritePre", {
|
|||||||
desc = "auto format Go files",
|
desc = "auto format Go files",
|
||||||
callback = function()
|
callback = function()
|
||||||
vim.lsp.buf.format()
|
vim.lsp.buf.format()
|
||||||
-- vim.fn.system("go fmt " .. vim.fn.expand("%:p"))
|
|
||||||
-- vim.fn.system("goimports -w " .. vim.fn.expand("%:p"))
|
|
||||||
-- vim.cmd("edit")
|
|
||||||
end,
|
end,
|
||||||
group = "Go",
|
group = "Go",
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,5 +1 @@
|
|||||||
require("langs.go")
|
require("langs.go")
|
||||||
-- require("langs.rust")
|
|
||||||
require("langs.lualang")
|
|
||||||
require("langs.nix")
|
|
||||||
require("langs.markdown")
|
|
||||||
|
|||||||
@@ -1,34 +0,0 @@
|
|||||||
vim.api.nvim_create_augroup("Lua", {})
|
|
||||||
|
|
||||||
local old = {}
|
|
||||||
vim.api.nvim_create_autocmd("BufEnter", {
|
|
||||||
pattern = { "*.lua" },
|
|
||||||
desc = "auto lua file indent",
|
|
||||||
callback = function()
|
|
||||||
local opt = vim.opt
|
|
||||||
-- Tab width setting
|
|
||||||
old.tabstop = opt.tabstop
|
|
||||||
old.shiftwidth = opt.shiftwidth
|
|
||||||
old.softtabstop = opt.softtabstop
|
|
||||||
old.expandtab = opt.expandtab
|
|
||||||
opt.tabstop = 2
|
|
||||||
opt.shiftwidth = 2
|
|
||||||
opt.softtabstop = 2
|
|
||||||
opt.expandtab = true
|
|
||||||
opt.autoindent = true
|
|
||||||
end,
|
|
||||||
group = "Lua",
|
|
||||||
})
|
|
||||||
vim.api.nvim_create_autocmd("BufLeave", {
|
|
||||||
pattern = { "*.lua" },
|
|
||||||
desc = "auto lua file indent",
|
|
||||||
callback = function()
|
|
||||||
local opt = vim.opt
|
|
||||||
-- Tab width setting
|
|
||||||
opt.tabstop = old.tabstop
|
|
||||||
opt.shiftwidth = old.shiftwidth
|
|
||||||
opt.softtabstop = old.softtabstop
|
|
||||||
opt.expandtab = old.expandtab
|
|
||||||
end,
|
|
||||||
group = "Lua",
|
|
||||||
})
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
vim.api.nvim_create_augroup("Markdown", {})
|
|
||||||
|
|
||||||
local old = {}
|
|
||||||
vim.api.nvim_create_autocmd("BufEnter", {
|
|
||||||
pattern = { "*.md" },
|
|
||||||
desc = "auto md file indent",
|
|
||||||
callback = function()
|
|
||||||
local opt = vim.opt
|
|
||||||
-- Tab width setting
|
|
||||||
old.tabstop = opt.tabstop
|
|
||||||
old.shiftwidth = opt.shiftwidth
|
|
||||||
old.softtabstop = opt.softtabstop
|
|
||||||
old.expandtab = opt.expandtab
|
|
||||||
opt.tabstop = 2
|
|
||||||
opt.shiftwidth = 2
|
|
||||||
opt.softtabstop = 2
|
|
||||||
opt.expandtab = true
|
|
||||||
opt.autoindent = true
|
|
||||||
end,
|
|
||||||
group = "Markdown",
|
|
||||||
})
|
|
||||||
vim.api.nvim_create_autocmd("BufLeave", {
|
|
||||||
pattern = { "*.md" },
|
|
||||||
desc = "auto markdown file indent",
|
|
||||||
callback = function()
|
|
||||||
local opt = vim.opt
|
|
||||||
-- Tab width setting
|
|
||||||
opt.tabstop = old.tabstop
|
|
||||||
opt.shiftwidth = old.shiftwidth
|
|
||||||
opt.softtabstop = old.softtabstop
|
|
||||||
opt.expandtab = old.expandtab
|
|
||||||
end,
|
|
||||||
group = "Markdown",
|
|
||||||
})
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
vim.api.nvim_create_augroup("Nix", {})
|
|
||||||
|
|
||||||
local old = {}
|
|
||||||
vim.api.nvim_create_autocmd("BufEnter", {
|
|
||||||
pattern = { "*.nix" },
|
|
||||||
desc = "auto nix file indent",
|
|
||||||
callback = function()
|
|
||||||
local opt = vim.opt
|
|
||||||
-- Tab width setting
|
|
||||||
old.tabstop = opt.tabstop
|
|
||||||
old.shiftwidth = opt.shiftwidth
|
|
||||||
old.softtabstop = opt.softtabstop
|
|
||||||
old.expandtab = opt.expandtab
|
|
||||||
opt.tabstop = 2
|
|
||||||
opt.shiftwidth = 2
|
|
||||||
opt.softtabstop = 2
|
|
||||||
opt.expandtab = true
|
|
||||||
opt.autoindent = true
|
|
||||||
end,
|
|
||||||
group = "Nix",
|
|
||||||
})
|
|
||||||
vim.api.nvim_create_autocmd("BufLeave", {
|
|
||||||
pattern = { "*.nix" },
|
|
||||||
desc = "auto nix file indent",
|
|
||||||
callback = function()
|
|
||||||
local opt = vim.opt
|
|
||||||
-- Tab width setting
|
|
||||||
opt.tabstop = old.tabstop
|
|
||||||
opt.shiftwidth = old.shiftwidth
|
|
||||||
opt.softtabstop = old.softtabstop
|
|
||||||
opt.expandtab = old.expandtab
|
|
||||||
end,
|
|
||||||
group = "Nix",
|
|
||||||
})
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
vim.api.nvim_create_augroup("Rust", {})
|
|
||||||
vim.api.nvim_create_autocmd("BufWritePost", {
|
|
||||||
pattern = { "*.rs" },
|
|
||||||
desc = "auto format Rust files",
|
|
||||||
callback = function()
|
|
||||||
vim.fn.system("rustfmt " .. vim.fn.expand("%:p"))
|
|
||||||
vim.cmd("edit")
|
|
||||||
end,
|
|
||||||
group = "Rust",
|
|
||||||
})
|
|
||||||
@@ -1,18 +1,4 @@
|
|||||||
local servers = {
|
local servers = {
|
||||||
"lua_ls",
|
|
||||||
"pyright",
|
|
||||||
"gopls",
|
|
||||||
"clangd",
|
|
||||||
"rust_analyzer",
|
|
||||||
"ts_ls",
|
|
||||||
"jsonls",
|
|
||||||
"cssls",
|
|
||||||
"nixd",
|
|
||||||
"html",
|
|
||||||
"java_language_server",
|
|
||||||
}
|
|
||||||
|
|
||||||
local extra_config = {
|
|
||||||
lua_ls = {
|
lua_ls = {
|
||||||
settings = {
|
settings = {
|
||||||
Lua = {
|
Lua = {
|
||||||
@@ -52,20 +38,30 @@ local extra_config = {
|
|||||||
nixd = {
|
nixd = {
|
||||||
settings = {
|
settings = {
|
||||||
nixd = {
|
nixd = {
|
||||||
|
formatting = {
|
||||||
|
command = { "nixfmt" },
|
||||||
|
},
|
||||||
nixpkgs = {
|
nixpkgs = {
|
||||||
expr = "import <nixpkgs> { }",
|
expr = "import <nixpkgs> { }",
|
||||||
},
|
},
|
||||||
options = {
|
|
||||||
nixos = {
|
|
||||||
expr = '(builtins.getFlake ("git+file://" + toString ./.)).nixosConfigurations.imxyy-nix.options',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
tinymist = {
|
||||||
|
cmd = { "tinymist" },
|
||||||
|
filetypes = { "typst" },
|
||||||
|
},
|
||||||
qmlls = {
|
qmlls = {
|
||||||
cmd = { "qmlls", "-E" },
|
cmd = { "qmlls", "-E" },
|
||||||
},
|
},
|
||||||
|
pyright = {},
|
||||||
|
gopls = {},
|
||||||
|
clangd = {},
|
||||||
|
ts_ls = {},
|
||||||
|
jsonls = {},
|
||||||
|
cssls = {},
|
||||||
|
html = {},
|
||||||
|
java_language_server = {},
|
||||||
}
|
}
|
||||||
|
|
||||||
local capabilities = require("cmp_nvim_lsp").default_capabilities()
|
local capabilities = require("cmp_nvim_lsp").default_capabilities()
|
||||||
@@ -74,14 +70,8 @@ capabilities.textDocument.foldingRange = {
|
|||||||
dynamicRegistration = false,
|
dynamicRegistration = false,
|
||||||
lineFoldingOnly = true,
|
lineFoldingOnly = true,
|
||||||
}
|
}
|
||||||
for _, server in ipairs(servers) do
|
for server, config in pairs(servers) do
|
||||||
local extra = extra_config[server] or {}
|
config["capabilities"] = capabilities
|
||||||
local config = {
|
|
||||||
capabilities = capabilities,
|
|
||||||
}
|
|
||||||
for k, v in pairs(extra) do
|
|
||||||
config[k] = v
|
|
||||||
end
|
|
||||||
vim.lsp.config(server, config)
|
vim.lsp.config(server, config)
|
||||||
vim.lsp.enable(server)
|
vim.lsp.enable(server)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -281,6 +281,12 @@ local plugins = {
|
|||||||
ft = "pest",
|
ft = "pest",
|
||||||
opts = {},
|
opts = {},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"nmac427/guess-indent.nvim",
|
||||||
|
event = "VeryLazy",
|
||||||
|
opts = {},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
require("lazy").setup(plugins, {})
|
require("lazy").setup(plugins, {})
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ lib.my.makeSwitch {
|
|||||||
lua.enable = true;
|
lua.enable = true;
|
||||||
java.enable = true;
|
java.enable = true;
|
||||||
qml.enable = true;
|
qml.enable = true;
|
||||||
|
typst.enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
21
modules/coding/langs/typst.nix
Normal file
21
modules/coding/langs/typst.nix
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
lib.my.makeSwitch {
|
||||||
|
inherit config;
|
||||||
|
optionName = "Typst";
|
||||||
|
optionPath = [
|
||||||
|
"coding"
|
||||||
|
"langs"
|
||||||
|
"typst"
|
||||||
|
];
|
||||||
|
config' = {
|
||||||
|
my.hm.home.packages = with pkgs; [
|
||||||
|
typst
|
||||||
|
tinymist
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -60,7 +60,10 @@ lib.my.makeSwitch {
|
|||||||
!include ${config.sops.secrets.nix-github-token.path}
|
!include ${config.sops.secrets.nix-github-token.path}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
my.hm.home.packages = [ pkgs.nixd ];
|
my.hm.home.packages = with pkgs; [
|
||||||
|
nixd
|
||||||
|
nixfmt
|
||||||
|
];
|
||||||
|
|
||||||
# uncomment to enable auto gc
|
# uncomment to enable auto gc
|
||||||
/*
|
/*
|
||||||
|
|||||||
Reference in New Issue
Block a user