Add .config/nvim/LICENSE

Add .config/nvim/README.md
Add .config/nvim/.gitignore
Add .config/nvim/.neoconf.json
Add .config/nvim/init.lua
Add .config/nvim/lazy-lock.json
Add .config/nvim/lua/config/autocmds.lua
Add .config/nvim/lua/config/keymaps.lua
Add .config/nvim/lua/config/lazy.lua
Add .config/nvim/lua/config/options.lua
Add .config/nvim/lua/plugins/catppuccin.lua
Add .config/nvim/lua/plugins/copilot-cmp.lua
Add .config/nvim/lua/plugins/copilot.lua
Add .config/nvim/lua/plugins/core.lua
Add .config/nvim/lua/plugins/crates.lua
Add .config/nvim/lua/plugins/example.lua
Add .config/nvim/lua/plugins/lspconfig.lua
Add .config/nvim/lua/plugins/neoconf.lua
Add .config/nvim/lua/plugins/neorg.lua
Add .config/nvim/lua/plugins/noice.lua
Add .config/nvim/lua/plugins/null-ls.lua
Add .config/nvim/lua/plugins/nvim-cmp.lua
Add .config/nvim/lua/plugins/nvim-dap.lua
Add .config/nvim/lua/plugins/ranger.lua
Add .config/nvim/lua/plugins/rust-tools.lua
Add .config/nvim/lua/plugins/tmux.lua
Add .config/nvim/lua/plugins/toggleterm.lua
Add .config/nvim/lua/plugins/treesitter.lua
Add .config/nvim/lua/plugins/vim-wordmotion.lua
Add .config/nvim/lua/plugins/zen-mode.lua
Add .config/nvim/neoconf.json
Add .config/nvim/queries/hurl/highlights.scm
Add .config/nvim/queries/hurl/injections.scm
Add .config/nvim/stylua.toml
Add .config/ranger/.keep
Add .config/toot/config.json
Add .config/zathura/.keep
Add .config/zellij/config.kdl
Update .zimrc
This commit is contained in:
2023-07-24 12:41:02 +02:00
parent 2cf06bbf3b
commit d80976a36b
39 changed files with 1420 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
return {
"catppuccin/nvim",
lazy = true,
name = "catppuccin",
config = function()
require("catppuccin").setup({
--flavour = "espresso"
--flavour = "macchiato"
})
end
}

View File

@@ -0,0 +1,6 @@
return {
"zbirenbaum/copilot-cmp",
config = function()
require("copilot_cmp").setup()
end
}

View File

@@ -0,0 +1,19 @@
return {
"zbirenbaum/copilot.lua",
enabled = false,
cmd = "Copilot",
event = "InsertEnter",
config = function()
require("copilot").setup({
suggestion = { enabled = false },
panel = { enabled = false },
--suggestion = {
-- auto_trigger = true,
-- keymap = {
-- accept = "<C-S-l>",
-- }
--}
})
end,
}

View File

@@ -0,0 +1,6 @@
return {
"LazyVim/LazyVim",
opts = {
colorscheme = "catppuccin"
}
}

View File

@@ -0,0 +1,8 @@
return {
'saecki/crates.nvim',
tag = 'v0.3.0',
dependencies = { 'nvim-lua/plenary.nvim' },
config = function()
require('crates').setup()
end,
}

View File

@@ -0,0 +1,267 @@
-- since this is just an example spec, don't actually load anything here and return an empty spec
-- stylua: ignore
if true then return {} end
-- every spec file under config.plugins will be loaded automatically by lazy.nvim
--
-- In your plugin files, you can:
-- * add extra plugins
-- * disable/enabled LazyVim plugins
-- * override the configuration of LazyVim plugins
return {
-- add gruvbox
{ "ellisonleao/gruvbox.nvim" },
-- Configure LazyVim to load gruvbox
{
"LazyVim/LazyVim",
opts = {
colorscheme = "gruvbox",
},
},
-- change trouble config
{
"folke/trouble.nvim",
-- opts will be merged with the parent spec
opts = { use_diagnostic_signs = true },
},
-- disable trouble
{ "folke/trouble.nvim", enabled = false },
-- add symbols-outline
{
"simrat39/symbols-outline.nvim",
cmd = "SymbolsOutline",
keys = { { "<leader>cs", "<cmd>SymbolsOutline<cr>", desc = "Symbols Outline" } },
config = true,
},
-- override nvim-cmp and add cmp-emoji
{
"hrsh7th/nvim-cmp",
dependencies = { "hrsh7th/cmp-emoji" },
---@param opts cmp.ConfigSchema
opts = function(_, opts)
local cmp = require("cmp")
opts.sources = cmp.config.sources(vim.list_extend(opts.sources, { { name = "emoji" } }))
end,
},
-- change some telescope options and a keymap to browse plugin files
{
"nvim-telescope/telescope.nvim",
keys = {
-- add a keymap to browse plugin files
-- stylua: ignore
{
"<leader>fp",
function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end,
desc = "Find Plugin File",
},
},
-- change some options
opts = {
defaults = {
layout_strategy = "horizontal",
layout_config = { prompt_position = "top" },
sorting_strategy = "ascending",
winblend = 0,
},
},
},
-- add telescope-fzf-native
{
"telescope.nvim",
dependencies = {
"nvim-telescope/telescope-fzf-native.nvim",
build = "make",
config = function()
require("telescope").load_extension("fzf")
end,
},
},
-- add pyright to lspconfig
{
"neovim/nvim-lspconfig",
---@class PluginLspOpts
opts = {
---@type lspconfig.options
servers = {
-- pyright will be automatically installed with mason and loaded with lspconfig
pyright = {},
},
},
},
-- add tsserver and setup with typescript.nvim instead of lspconfig
{
"neovim/nvim-lspconfig",
dependencies = {
"jose-elias-alvarez/typescript.nvim",
init = function()
require("lazyvim.util").on_attach(function(_, buffer)
-- stylua: ignore
vim.keymap.set( "n", "<leader>co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" })
vim.keymap.set("n", "<leader>cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer })
end)
end,
},
---@class PluginLspOpts
opts = {
---@type lspconfig.options
servers = {
-- tsserver will be automatically installed with mason and loaded with lspconfig
tsserver = {},
},
-- you can do any additional lsp server setup here
-- return true if you don't want this server to be setup with lspconfig
---@type table<string, fun(server:string, opts:_.lspconfig.options):boolean?>
setup = {
-- example to setup with typescript.nvim
tsserver = function(_, opts)
require("typescript").setup({ server = opts })
return true
end,
-- Specify * to use this function as a fallback for any server
-- ["*"] = function(server, opts) end,
},
},
},
-- for typescript, LazyVim also includes extra specs to properly setup lspconfig,
-- treesitter, mason and typescript.nvim. So instead of the above, you can use:
{ import = "lazyvim.plugins.extras.lang.typescript" },
-- add more treesitter parsers
{
"nvim-treesitter/nvim-treesitter",
opts = {
ensure_installed = {
"bash",
"help",
"html",
"javascript",
"json",
"lua",
"markdown",
"markdown_inline",
"python",
"query",
"regex",
"tsx",
"typescript",
"vim",
"yaml",
},
},
},
-- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above
-- would overwrite `ensure_installed` with the new value.
-- If you'd rather extend the default config, use the code below instead:
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
-- add tsx and treesitter
vim.list_extend(opts.ensure_installed, {
"tsx",
"typescript",
})
end,
},
-- the opts function can also be used to change the default opts:
{
"nvim-lualine/lualine.nvim",
event = "VeryLazy",
opts = function(_, opts)
table.insert(opts.sections.lualine_x, "😄")
end,
},
-- or you can return new options to override all the defaults
{
"nvim-lualine/lualine.nvim",
event = "VeryLazy",
opts = function()
return {
--[[add your custom lualine config here]]
}
end,
},
-- use mini.starter instead of alpha
{ import = "lazyvim.plugins.extras.ui.mini-starter" },
-- add jsonls and schemastore ans setup treesitter for json, json5 and jsonc
{ import = "lazyvim.plugins.extras.lang.json" },
-- add any tools you want to have installed below
{
"williamboman/mason.nvim",
opts = {
ensure_installed = {
"stylua",
"shellcheck",
"shfmt",
"flake8",
},
},
},
-- Use <tab> for completion and snippets (supertab)
-- first: disable default <tab> and <s-tab> behavior in LuaSnip
{
"L3MON4D3/LuaSnip",
keys = function()
return {}
end,
},
-- then: setup supertab in cmp
{
"hrsh7th/nvim-cmp",
dependencies = {
"hrsh7th/cmp-emoji",
},
---@param opts cmp.ConfigSchema
opts = function(_, opts)
local has_words_before = function()
unpack = unpack or table.unpack
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
end
local luasnip = require("luasnip")
local cmp = require("cmp")
opts.mapping = vim.tbl_extend("force", opts.mapping, {
["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
-- You could replace the expand_or_jumpable() calls with expand_or_locally_jumpable()
-- they way you will only jump inside the snippet region
elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump()
elseif has_words_before() then
cmp.complete()
else
fallback()
end
end, { "i", "s" }),
["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif luasnip.jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
end, { "i", "s" }),
})
end,
},
}

View File

@@ -0,0 +1,122 @@
return {
"neovim/nvim-lspconfig",
opts = {
---@type lspconfig.options
servers = {
tailwindcss = {
filetypes = {
"css",
"scss",
"sass",
"html",
"javascriptreact",
"typescriptreact",
"rust",
"svelte",
},
init_options = {
userLanguages = {
rust = "html"
}
},
settings = {
includeLanguages = {
rust = "html",
}
},
tailwindcss = {
experimental = {
classRegex = {
[[class= "([^"]*)]],
[[class: "([^"]*)]],
'~H""".*class="([^"]*)".*"""',
'~F""".*class="([^"]*)".*"""',
},
},
validate = true
}
},
jsonls = {
on_new_config = function(new_config)
new_config.settings.json.schemas = new_config.settings.json.schemas or {
}
vim.list_extend(new_config.settings.json.schemas, require("schemastore").json.schemas())
end,
settings = {
json = {
validate = { enable = true },
schemas = {
{
description = "shuttle go plan",
fileMatch = {
"shuttle.yaml"
},
name = "shuttle.yaml",
url = "file:///Users/kah/git/github.com/lunarway/lw-shuttle-go-plan/.schemastore/schema.json"
}
}
}
}
},
yamlls = {
on_new_config = function(new_config)
new_config.settings.json.schemas = new_config.settings.json.schemas or {
}
vim.list_extend(new_config.settings.json.schemas, require("schemastore").json.schemas())
end,
settings = {
yaml = {
validate = true,
schemas = {
["file:///Users/kah/git/github.com/lunarway/lw-shuttle-go-plan/.schemastore/schema.json"] = "shuttle.yaml"
--{
-- description = "shuttle go plan",
-- fileMatch = {
-- "shuttle.yaml"
-- },
-- name = "shuttle.yaml",
-- url =
--}
}
}
}
},
pylsp = {
settings = {
pylsp = {
plugins = {
autopep8 = {
enabled = false
},
yapf = {
enabled = false
},
pylint = {
enabled = true
},
flake8 = {
enabled = true
},
["pylsp-mypy"] = {
enabled = true,
livemode = true
},
["pylsp-rope"] = {
enabled = true
},
["pyls-isort"] = {
enabled = true
},
["python-lsp-black"] = {
enabled = true
},
["pyls-memestra"] = {
enabled = true
},
}
}
}
}
}
}
}

View File

@@ -0,0 +1,3 @@
return {
"folke/neoconf.nvim",
}

View File

@@ -0,0 +1,4 @@
return {
"nvim-neorg/neorg",
ft = "norg"
}

View File

@@ -0,0 +1,18 @@
return {
"folke/noice.nvim",
event = "VeryLazy",
opts = {
routes = {
{
filter = {
event = "msg_show",
kind = "",
--find = "written"
},
opts = {
skip = true
}
}
}
}
}

View File

@@ -0,0 +1,63 @@
local h = require("null-ls.helpers")
local methods = require("null-ls.methods")
local u = require("null-ls.utils")
local FORMATTING = methods.internal.FORMATTING
local leptosfmt = h.make_builtin({
name = "leptosfmt",
meta = {
url = "https://github.com/bram209/leptosfmt",
description = "A formatter for the leptos view! macro"
},
method = FORMATTING,
filetypes = { "rust" },
generator_opts = {
command = "leptosfmt",
args = { "--quiet", "--stdin" },
to_stdin = true,
},
factory = h.formatter_factory,
})
return {
"jose-elias-alvarez/null-ls.nvim",
event = "BufReadPre",
dependencies = { "mason.nvim" },
opts = function()
local nls = require("null-ls")
return {
sources = {
nls.builtins.formatting.terraform_fmt,
--nls.builtins.formatting.yamlfmt,
nls.builtins.formatting.deno_fmt.with({
filetypes = { "markdown" }
}),
nls.builtins.formatting.golines,
nls.builtins.formatting.goimports_reviser,
nls.builtins.formatting.goimports,
nls.builtins.formatting.gofumpt,
nls.builtins.formatting.taplo,
nls.builtins.formatting.prettierd.with({
filetypes = { "graphql" }
}),
nls.builtins.formatting.shfmt,
nls.builtins.code_actions.gitsigns,
nls.builtins.code_actions.refactoring,
nls.builtins.formatting.rustfmt.with({
extra_args = { "--edition=2021" },
filetypes = { "rust" }
}),
leptosfmt.with({
condition = function(utils)
return utils.root_has_file({ "leptosfmt.toml" })
end,
}),
nls.builtins.diagnostics.revive,
nls.builtins.code_actions.impl,
nls.builtins.code_actions.refactoring,
},
}
end,
}

View File

@@ -0,0 +1,9 @@
return {
"hrsh7th/nvim-cmp",
opts = function(_, opts)
local cmp = require("cmp")
opts.sources = cmp.config.sources(vim.list_extend(opts.sources, { { name = "copilot", group_index = 2 } }))
return opts
end
}

View File

@@ -0,0 +1,3 @@
return {
"mfussenegger/nvim-dap"
}

View File

@@ -0,0 +1,9 @@
return {
"kjuulh/ranger.nvim",
config = function()
require("ranger").setup()
end,
keys = {
{ "<leader>.", "<CMD>Ranger<CR>", "Opens the ranger file manager" },
},
}

View File

@@ -0,0 +1,40 @@
return {
"simrat39/rust-tools.nvim",
config = function()
local rt = require("rust-tools")
rt.setup({
server = {
on_attach = function(_, bufnr)
-- Hover actions
vim.keymap.set("n", "<C-space>", rt.hover_actions.hover_actions, { buffer = bufnr })
-- Code action groups
vim.keymap.set("n", "<Leader>a", rt.code_action_group.code_action_group, { buffer = bufnr })
end,
settings = {
["rust-analyzer"] = {
imports = {
granularity = {
group = "module",
},
prefix = "self",
},
cargo = {
allFeatures = true,
buildScripts = {
enable = true,
},
procMacro = {
enable = true,
}
},
checkOnSave = {
allFeatures = true,
enable = true
}
},
},
},
})
end,
}

View File

@@ -0,0 +1,6 @@
return {
"aserowy/tmux.nvim",
config = function()
require("tmux").setup()
end
}

View File

@@ -0,0 +1,26 @@
return {
"akinsho/toggleterm.nvim",
config = function()
require("toggleterm").setup({
shading_factor = 2,
open_mapping = [[<C-T>]],
insert_mapping = true,
terminal_mapping = true,
direction = "float",
float_opts = {
border = "curved",
highlights = {
border = "Normal",
background = "Normal",
},
},
})
end,
keys = {
{
"<leader>t",
"<cmd>ToggleTerm<CR>",
desc = "Open a terminal",
},
},
}

View File

@@ -0,0 +1,35 @@
return {
"nvim-treesitter/nvim-treesitter",
opts = function(_, _)
local parser_config = require "nvim-treesitter.parsers".get_parser_configs()
-- https://github.com/nvim-treesitter/nvim-treesitter/tree/master#adding-parsers
parser_config.hurl = {
install_info = {
url = "~/git/github.com/kjuulh/tree-sitter-hurl",
files = { "src/parser.c" },
branch = "main",
generate_requires_npm = false,
requires_generate_from_grammar = false,
},
filetype = "hurl",
}
vim.treesitter.language.register('xml', 'html')
vim.filetype.add({
extension = {
xml = "html"
}
})
-- https://neovim.io/doc/user/lua.html#vim.filetype.add()
-- Search for vim.filetype.add
vim.filetype.add({
extension = {
hurl = "hurl"
}
})
end
}

View File

@@ -0,0 +1,3 @@
return {
"chaoren/vim-wordmotion",
}

View File

@@ -0,0 +1,13 @@
return {
"folke/zen-mode.nvim",
config = function()
require("zen-mode").setup {
plugins = {
kitty = {
enabled = true
}
}
}
end,
keys = { { "<leader>wz", "<cmd>ZenMode<cr>", desc = "Toggle zen mode" } },
}