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 {
|
||||
{
|
||||
"folke/lazydev.nvim",
|
||||
|
||||
@@ -4,9 +4,6 @@ vim.api.nvim_create_autocmd("BufWritePre", {
|
||||
desc = "auto format Go files",
|
||||
callback = function()
|
||||
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,
|
||||
group = "Go",
|
||||
})
|
||||
|
||||
@@ -1,5 +1 @@
|
||||
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 = {
|
||||
"lua_ls",
|
||||
"pyright",
|
||||
"gopls",
|
||||
"clangd",
|
||||
"rust_analyzer",
|
||||
"ts_ls",
|
||||
"jsonls",
|
||||
"cssls",
|
||||
"nixd",
|
||||
"html",
|
||||
"java_language_server",
|
||||
}
|
||||
|
||||
local extra_config = {
|
||||
lua_ls = {
|
||||
settings = {
|
||||
Lua = {
|
||||
@@ -52,20 +38,30 @@ local extra_config = {
|
||||
nixd = {
|
||||
settings = {
|
||||
nixd = {
|
||||
formatting = {
|
||||
command = { "nixfmt" },
|
||||
},
|
||||
nixpkgs = {
|
||||
expr = "import <nixpkgs> { }",
|
||||
},
|
||||
options = {
|
||||
nixos = {
|
||||
expr = '(builtins.getFlake ("git+file://" + toString ./.)).nixosConfigurations.imxyy-nix.options',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
tinymist = {
|
||||
cmd = { "tinymist" },
|
||||
filetypes = { "typst" },
|
||||
},
|
||||
qmlls = {
|
||||
cmd = { "qmlls", "-E" },
|
||||
},
|
||||
pyright = {},
|
||||
gopls = {},
|
||||
clangd = {},
|
||||
ts_ls = {},
|
||||
jsonls = {},
|
||||
cssls = {},
|
||||
html = {},
|
||||
java_language_server = {},
|
||||
}
|
||||
|
||||
local capabilities = require("cmp_nvim_lsp").default_capabilities()
|
||||
@@ -74,14 +70,8 @@ capabilities.textDocument.foldingRange = {
|
||||
dynamicRegistration = false,
|
||||
lineFoldingOnly = true,
|
||||
}
|
||||
for _, server in ipairs(servers) do
|
||||
local extra = extra_config[server] or {}
|
||||
local config = {
|
||||
capabilities = capabilities,
|
||||
}
|
||||
for k, v in pairs(extra) do
|
||||
config[k] = v
|
||||
end
|
||||
for server, config in pairs(servers) do
|
||||
config["capabilities"] = capabilities
|
||||
vim.lsp.config(server, config)
|
||||
vim.lsp.enable(server)
|
||||
end
|
||||
|
||||
@@ -281,6 +281,12 @@ local plugins = {
|
||||
ft = "pest",
|
||||
opts = {},
|
||||
},
|
||||
|
||||
{
|
||||
"nmac427/guess-indent.nvim",
|
||||
event = "VeryLazy",
|
||||
opts = {},
|
||||
},
|
||||
}
|
||||
|
||||
require("lazy").setup(plugins, {})
|
||||
|
||||
@@ -17,6 +17,7 @@ lib.my.makeSwitch {
|
||||
lua.enable = true;
|
||||
java.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}
|
||||
'';
|
||||
|
||||
my.hm.home.packages = [ pkgs.nixd ];
|
||||
my.hm.home.packages = with pkgs; [
|
||||
nixd
|
||||
nixfmt
|
||||
];
|
||||
|
||||
# uncomment to enable auto gc
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user