Start config revamp based on neovim docs

This commit is contained in:
pro100ton 2025-01-31 20:36:04 +03:00
parent bc4d797cff
commit 8082bd0f1e
37 changed files with 47 additions and 1041 deletions

View file

@ -1,2 +0,0 @@
# Useful links
- [neovim stup guide](https://www.youtube.com/watch?v=6pAG3BHurdM)

View file

@ -1,37 +0,0 @@
FROM ubuntu:latest
# Install build tools and nvim deps
RUN apt-get update && apt-get install -y --no-install-recommends \
cmake \
gettext \
unzip \
git \
build-essential \
curl \
nodejs \
npm \
fzf \
golang-go \
python3 \
python3-pip \
python3-venv \
ripgrep
# Clone neovim repo
RUN git clone --depth 1 --branch v0.10.1 https://github.com/neovim/neovim.git
# Build neovim
RUN cd neovim && CMAKE_BUILD_TYPE=Release && make install
# Install rust
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -y | sh
# Create user
RUN useradd -m nvim_playground
USER nvim_playground
# Copy config to user folders
RUN mkdir -p /home/nvim_playground/.config/nvim
WORKDIR /home/nvim_playground/.config/nvim
COPY --chown=nvim_playground:nvim_playground . .
USER nvim_playground

View file

@ -1,26 +0,0 @@
FROM ubuntu:latest
LABEL maintainer="pro100ton@gmail.com"
RUN apt-get update && apt-get install -y \
build-essential \
curl \
neovim \
git \
nodejs \
npm \
fzf \
golang-go \
python3 \
python3-pip \
python3-venv \
unzip \
ripgrep
RUN useradd -m nvim_playground
USER nvim_playground
RUN mkdir /home/nvim_playground/.config
RUN mkdir /home/nvim_playground/.config/nvim
WORKDIR /home/nvim_playground/.config/nvim
COPY . .

View file

@ -1,52 +1 @@
# Installation
## obsidian.nvim
Чтобы правильно работал плагин для obsidian'a - необходимо установить переменную окружения `OBSIDIAN_NOTES_PATH`, которая будет указывать путь до папки, где лежат документы obsidian.
Код, в котором это используется:
path: `lua/t0xa/plugins/obsidian.lua`
code
```lua
...
workspaces = {
{
name = "personal",
path = os.getenv("OBSIDIAN_NOTES_PATH"),
},
},
...
```
# File structure
```
.
├── Dockerfile
├── README.md
├── init.lua
└── lua
└── t0xa
├── core
│   └── options.lua
└── plugins
└── lazy.lua
```
## init.lua
Файл, в который "смотрит" neovim при [старте](https://neovim.io/doc/user/starting.html#initialization).
## t0xa
Вместо того, чтобы использовать обращение к файлам настройки напрямую - используется данная
папка.
Можно обходиться без нее, однако для избегания конфликтов нейминга решил что буду использовать
так.
## core
Тут хранятся базовые настройки для neovim
## plugins
Папка для хранения и настроек плагинов для neovim
# Команда для запуска контейнеров
```
docker build -t nvim:nvim . && docker run -it --user nvim_playground nvim:nvim
```
# Config refactor (v2.0)

View file

@ -1,40 +0,0 @@
return {
"nvim-tree/nvim-tree.lua",
dependencies = "nvim-tree/nvim-web-devicons",
config = function()
local nvimtree = require("nvim-tree")
-- recommended settings from nvim-tree documentation
vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1
nvimtree.setup({
view = {
-- width = 35,
adaptive_size = true,
relativenumber = true,
},
-- disable window_picker for explorer to work well with window splits
actions = {
open_file = {
window_picker = {
enable = true,
},
},
},
-- Custom list of vim regex for names that will not be shown
filters = {
custom = { ".DS_Store" },
},
-- Show files ignored by git
git = {
ignore = false,
},
})
-- set nvim-tree keypmaps
local keymap = vim.keymap
keymap.set('n', '<leader>nt', ':NvimTreeToggle<CR>', {desc = "Toggle file explorer"})
keymap.set('n', '<leader>nf', ':NvimTreeFindFileToggle<CR>', {desc = "Toggle file explorer on current file"})
end
}

1
ftplugin/go.lua Normal file
View file

@ -0,0 +1 @@
print("Hello from golang file")

View file

@ -1,4 +1,34 @@
-- Omitting `lua` directory, because neovim autmaticaly serching in it
require("t0xa.core.options")
require("t0xa.core.keybindings")
require("t0xa.lazy")
-- Bootstrap lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
if vim.v.shell_error ~= 0 then
vim.api.nvim_echo({
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
{ out, "WarningMsg" },
{ "\nPress any key to exit..." },
}, true, {})
vim.fn.getchar()
os.exit(1)
end
end
vim.opt.rtp:prepend(lazypath)
-- Making leader (<Leader>) key to space
vim.g.mapleader = " "
-- Making local leader (<LocalLeader>) key to backslash
vim.g.maplocalleader = "\\"
-- Setup lazy.nvim
require("lazy").setup({
spec = {
-- import your plugins
{ import = "custom/plugins" },
},
-- Configure any other settings here. See the documentation for more details.
-- colorscheme that will be used when installing plugins.
install = { colorscheme = { "gruvbox-material" } },
-- automatically check for plugin updates
checker = { enabled = false },
})

View file

@ -1,7 +1,4 @@
return {
"stevearc/oil.nvim",
---@module 'oil'
---@type oil.SetupOpts
require("oil").setup{
opts = {
keymaps = {
["g?"] = "actions.show_help",
@ -25,7 +22,6 @@ return {
show_hidden = true,
},
},
-- Optional dependencies
dependencies = { { "echasnovski/mini.icons", opts = {} } },
-- dependencies = { "nvim-tree/nvim-web-devicons" }, -- use if prefer nvim-web-devicons
-- Open parent directory in current window
vim.keymap.set("n", "-", "<CMD>Oil<CR>", { desc = "Open parent directory" }),
}

View file

@ -0,0 +1,8 @@
return {
"stevearc/oil.nvim",
dependencies = { { "echasnovski/mini.icons", opts = {} } },
config = function()
require "custom/oil"
end,
}

View file

@ -1,13 +0,0 @@
-- Obsidian-related keybinds
vim.keymap.set("n", "<leader>oit", "<cmd>ObsidianTemplate<CR>", { silent = true, noremap = true, desc="Obsidian: insert template" })
vim.keymap.set("n", "<leader>oo", "<cmd>ObsidianQuickSwitch<CR>", { silent = true, noremap = true, desc="Obsidian: open file" })
vim.keymap.set("n", "<leader>opi", "<cmd>ObsidianPasteImg<CR>", { silent = true, noremap = true, desc="Obsidian: paste image" })
vim.keymap.set("n", "<leader>or", "<cmd>ObsidianRename<CR>", { silent = true, noremap = true, desc="Obsidian: rename file" })
vim.keymap.set("n", "<leader>ol", "<cmd>ObsidianToggleCheckbox<CR>", { silent = true, noremap = true, desc="Obsidian: toggle checkbox" })
vim.keymap.set("n", "<leader>on", "<cmd>ObsidianNew<CR>", { silent = true, noremap = true, desc="Obsidian: new file" })
vim.keymap.set("n", "<leader>otoc", "<cmd>ObsidianTOC<CR>", { silent = true, noremap = true, desc="Obsidian: open TOC" })
vim.keymap.set("n", "<leader>ofl", "<cmd>ObsidianFollowLink<CR>", { silent = true, noremap = true, desc="Obsidian: follow link" })
-- Oil keybinds
vim.keymap.set("n", "-", "<CMD>Oil<CR>", { desc = "Open parent directory" })
-- Easy escape from terminal
vim.keymap.set("t", "<esc><esc>", "<c-\\><c-n>")

View file

@ -1,51 +0,0 @@
local opt = vim.opt -- Shorcut to scip writing vim.opt.* in settings beneath
-- enable line number and relative line number
opt.number = true -- This will show the line number cursor is currently standing
opt.relativenumber = true -- This will enable relative numbers on the left side
-- tabs & indentation
opt.shiftwidth = 2 -- Set spaces for tabs == 2
opt.tabstop = 2 -- Set spaces for indent with == 2
opt.expandtab = true -- use number of spaces to insert a <Tab>
opt.softtabstop = 2
-- search settings
opt.ignorecase = true -- ignore case when searching
opt.smartcase = true -- If mixing cases while searching = you want case-sensitive search
-- Cursor line setting
opt.cursorline = true
-- Turn on termguicolors for colorschemes
-- (Have to use true color terminal to see theese setting work)
opt.termguicolors = true
opt.background = "dark" -- colorschemes that can be light or dark will be made dark
opt.signcolumn = "yes" -- show sigh columns so that text doesn't shift
-- backspace setting
opt.backspace = "indent,eol,start" -- allow backspace on indent, end of line or insert mode start position
-- clipboard
opt.clipboard:append("unnamedplus") -- config to set up clipboard as default register
-- split windows settings
opt.splitright = true -- split vertical window to the right
opt.splitbelow = true -- split horizontal window to the bottom
-- disable swap files creation
opt.swapfile = false
-- Add line at 88 symbols
opt.colorcolumn = "120"
-- Obsidian setting fot concealing charachters
opt.conceallevel = 0
-- Enbale folding column
opt.foldmethod = "indent"
opt.foldcolumn = "1"
opt.foldlevelstart = 10
-- Live buffer editing
opt.inccommand = "split"

View file

@ -1,22 +0,0 @@
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable", -- latest stable release
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
-- Initializing `lazy` lib and
require("lazy").setup({
{
import = "t0xa.plugins",
},
{
import = "t0xa.plugins.lsp",
},
})

View file

@ -1,31 +0,0 @@
return {
"windwp/nvim-autopairs",
event = { "InsertEnter" },
dependencies = {
"hrsh7th/nvim-cmp",
},
config = function()
-- import nvim-autopairs
local autopairs = require("nvim-autopairs")
-- configure autopairs
autopairs.setup({
check_ts = true, -- enable treesitter
ts_config = {
lua = { "string" }, -- don't add pairs in lua string treesitter nodes
javascript = { "template_string" }, -- don't add pairs in javscript template_string treesitter nodes
java = false, -- don't check treesitter on java
},
})
-- import nvim-autopairs completion functionality
local cmp_autopairs = require("nvim-autopairs.completion.cmp")
-- import nvim-cmp plugin (completions plugin)
local cmp = require("cmp")
-- make autopairs and completion work together
cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done())
end,
}

View file

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

View file

@ -1,24 +0,0 @@
return {
"folke/tokyonight.nvim",
dependencies = {
"ellisonleao/gruvbox.nvim",
-- "morphez/gruvbox.nvim",
"sainnhe/everforest",
"sainnhe/gruvbox-material",
"rebelot/kanagawa.nvim",
"catppuccin/nvim",
"folke/tokyonight.nvim",
"luisiacc/gruvbox-baby",
},
lazy = false,
priority = 1000,
config = function()
-- vim.cmd.colorscheme("tokyonight-night")
-- vim.cmd.colorscheme("gruvbox")
-- vim.cmd.colorscheme("gruvbox-baby")
vim.g.gruvbox_material_background = 'hard'
vim.g.gruvbox_material_enable_italic = true
vim.cmd.colorscheme("gruvbox-material")
-- vim.cmd.colorscheme("catppuccin-mocha")
end,
}

View file

@ -1,19 +0,0 @@
return {
"numToStr/Comment.nvim",
event = { "BufReadPre", "BufNewFile" },
dependencies = {
"JoosepAlviste/nvim-ts-context-commentstring",
},
config = function()
-- import comment plugin safely
local comment = require("Comment")
local ts_context_commentstring = require("ts_context_commentstring.integrations.comment_nvim")
-- enable comment
comment.setup({
-- for commenting tsx, jsx, svelte, html files
pre_hook = ts_context_commentstring.create_pre_hook(),
})
end,
}

View file

@ -1,5 +0,0 @@
return {
"tpope/vim-dadbod",
"kristijanhusak/vim-dadbod-completion",
"kristijanhusak/vim-dadbod-ui",
}

View file

@ -1,4 +0,0 @@
return {
"stevearc/dressing.nvim",
event = "VeryLazy"
}

View file

@ -1,147 +0,0 @@
return {
"neovim/nvim-lspconfig",
event = { "BufReadPre", "BufNewFile" },
dependencies = {
"hrsh7th/cmp-nvim-lsp",
-- Some additional QOL impovements like rename imports when file is renamed
{ "antosha417/nvim-lsp-file-operations", config = true },
-- Improved functionality when working with neovim config
{ "folke/neodev.nvim", opts = {} },
},
config = function()
-- import lspconfig plugin
local lspconfig = require("lspconfig")
-- import mason_lspconfig plugin
local mason_lspconfig = require("mason-lspconfig")
-- import cmp-nvim-lsp plugin
local cmp_nvim_lsp = require("cmp_nvim_lsp")
local keymap = vim.keymap -- for conciseness
-- nvim_create_autocmd - used to execute some logic automaticaly on a specific event
-- Here it is used the LSP server attaches to file
vim.api.nvim_create_autocmd("LspAttach", {
-- Grouping together autocommands. Here we creating new group and calling it "UserLspConfig"
group = vim.api.nvim_create_augroup("UserLspConfig", {}),
-- callback defining logic to execute on the event
callback = function(ev)
-- Buffer local mappings.
-- See `:help vim.lsp.*` for documentation on any of the below functions
local opts = { buffer = ev.buf, silent = true }
-- set keybinds
opts.desc = "Show LSP references"
keymap.set("n", "gR", "<cmd>Telescope lsp_references<CR>", opts) -- show definition, references
opts.desc = "Go to declaration"
keymap.set("n", "gD", vim.lsp.buf.declaration, opts) -- go to declaration
opts.desc = "Show LSP definitions"
keymap.set("n", "gd", "<cmd>Telescope lsp_definitions<CR>", opts) -- show lsp definitions
opts.desc = "Show LSP implementations"
keymap.set("n", "gi", "<cmd>Telescope lsp_implementations<CR>", opts) -- show lsp implementations
opts.desc = "Show LSP type definitions"
keymap.set("n", "gt", "<cmd>Telescope lsp_type_definitions<CR>", opts) -- show lsp type definitions
opts.desc = "See available code actions"
keymap.set({ "n", "v" }, "<leader>ca", vim.lsp.buf.code_action, opts) -- see available code actions, in visual mode will apply to selection
opts.desc = "Smart rename"
keymap.set("n", "<leader>rn", vim.lsp.buf.rename, opts) -- smart rename
opts.desc = "Show buffer diagnostics"
keymap.set("n", "<leader>D", "<cmd>Telescope diagnostics bufnr=0<CR>", opts) -- show diagnostics for file
opts.desc = "Show line diagnostics"
keymap.set("n", "<leader>d", vim.diagnostic.open_float, opts) -- show diagnostics for line
opts.desc = "Go to previous diagnostic"
keymap.set("n", "[d", vim.diagnostic.goto_prev, opts) -- jump to previous diagnostic in buffer
opts.desc = "Go to next diagnostic"
keymap.set("n", "]d", vim.diagnostic.goto_next, opts) -- jump to next diagnostic in buffer
opts.desc = "Show documentation for what is under cursor"
keymap.set("n", "K", vim.lsp.buf.hover, opts) -- show documentation for what is under cursor
opts.desc = "Restart LSP"
keymap.set("n", "<leader>rs", ":LspRestart<CR>", opts) -- mapping to restart lsp if necessary
opts.desc = "Run formatting on current buffer"
keymap.set("n", "<space>f", function()
vim.lsp.buf.format({ async = true })
end, opts)
end,
})
-- used to enable autocompletion (assign to every lsp server config)
local capabilities = cmp_nvim_lsp.default_capabilities()
mason_lspconfig.setup_handlers({
-- default handler for installed servers
function(server_name)
lspconfig[server_name].setup({
capabilities = capabilities,
})
end,
["clangd"] = function()
lspconfig["clangd"].setup({
filetypes = { "c" },
cmd = {
"clangd",
"--offset-encoding=utf-16",
},
})
end,
["lua_ls"] = function()
-- configure lua server (with special settings)
lspconfig["lua_ls"].setup({
capabilities = capabilities,
settings = {
Lua = {
-- make the language server recognize "vim" global
diagnostics = {
globals = { "vim" },
},
completion = {
callSnippet = "Replace",
},
},
},
})
end,
})
-- Ruff setup
lspconfig.ruff.setup({
init_options = {
settings = {
-- Ruff language server settings go here
logLevel = "debug",
},
},
})
-- Pyright setup
lspconfig.pyright.setup({
settings = {
pyright = {
-- Using Ruff's import organizer
disableOrganizeImports = true,
},
python = {
analysis = {
-- Ignore all files for analysis to exclusively use Ruff for linting
ignore = { "*" },
diagnosticMode = "off",
typeCheckingMode = "off",
},
},
},
})
end,
}

View file

@ -1,49 +0,0 @@
return {
"williamboman/mason.nvim",
dependencies = {
"williamboman/mason-lspconfig.nvim", -- util for better language servers manipulation
"WhoIsSethDaniel/mason-tool-installer.nvim",
},
config = function()
-- import mason
local mason = require("mason")
-- import mason-lspconfig
local mason_lspconfig = require("mason-lspconfig")
local mason_tool_installer = require("mason-tool-installer")
-- enable mason and configure icons
mason.setup({
ui = {
icons = {
package_installed = "",
package_pending = "",
package_uninstalled = "",
},
},
})
mason_lspconfig.setup({
-- list of servers for mason to install
ensure_installed = {
"lua_ls",
"pyright",
"gopls",
},
})
mason_tool_installer.setup({
ensure_installed = {
"golines",
"goimports-reviser",
"prettier", -- prettier formatter
"stylua", -- lua formatter
"ruff", -- Python formatter and linter
"gofumpt",
-- Astra settings for 3.7 Python
-- NOTE: On Astra you need to install Ruff as standalone package
},
})
end,
}

View file

@ -1,24 +0,0 @@
return {
"nvim-lualine/lualine.nvim",
dependencies = { "nvim-tree/nvim-web-devicons" },
config = function()
local lualine = require("lualine")
-- configure lualine with modified theme
lualine.setup({
options = {
-- theme = "tokyonight",
-- theme = "catppuccin-mocha",
theme = "gruvbox-material",
},
sections = {
lualine_c = {
{
"filename",
file_status = true,
path = 2,
},
},
},
})
end,
}

View file

@ -1,15 +0,0 @@
return {
"danymat/neogen",
version = "*", -- Follow only stable versions
enabled = true,
config = function()
local neogen = require("neogen")
neogen.setup({
enabled = true
})
local keymap = vim.keymap
local opts = { noremap = true, silent = true }
keymap.set("n", "<Leader>ids", ":lua require('neogen').generate()<CR>", opts)
end,
-- config = true,
}

View file

@ -1,18 +0,0 @@
return {
"nvimtools/none-ls.nvim",
dependencies = {
"nvimtools/none-ls-extras.nvim",
},
config = function()
local null_ls = require("null-ls")
null_ls.setup({
sources = {
null_ls.builtins.formatting.gofumpt,
null_ls.builtins.formatting.goimports_reviser,
null_ls.builtins.formatting.stylua,
null_ls.builtins.formatting.golines,
},
})
end,
}

View file

@ -1,90 +0,0 @@
return {
"hrsh7th/nvim-cmp",
event = "InsertEnter", -- Only load plugin when in INSERT mode
dependencies = {
"hrsh7th/cmp-buffer", -- source for text in buffer
"hrsh7th/cmp-path", -- source for file system paths
{
"L3MON4D3/LuaSnip",
-- follow latest release.
version = "v2.*", -- Replace <CurrentMajor> by the latest released major (first number of latest release)
},
"saadparwaiz1/cmp_luasnip", -- for autocompletion
"rafamadriz/friendly-snippets", -- useful snippets
"onsails/lspkind.nvim", -- vs-code like pictograms
},
config = function()
-- Load custom snippets from path
require("luasnip.loaders.from_vscode").lazy_load()
require("luasnip.loaders.from_vscode").lazy_load({ paths = vim.fn.stdpath("config") .. "/snippets/" })
local cmp = require("cmp")
local luasnip = require("luasnip")
local lspkind = require("lspkind")
-- loads vscode style snippets from installed plugins (e.g. friendly-snippets)
require("luasnip.loaders.from_vscode").lazy_load()
cmp.setup({
completion = {
completeopt = "menu,menuone,preview,noselect",
},
snippet = { -- configure how nvim-cmp interacts with snippet engine
expand = function(args)
luasnip.lsp_expand(args.body)
end,
},
mapping = cmp.mapping.preset.insert({
["<C-k>"] = cmp.mapping.select_prev_item(),
["<C-j>"] = cmp.mapping.select_next_item(),
["<C-d>"] = cmp.mapping.scroll_docs(-4),
["<C-f>"] = cmp.mapping.scroll_docs(4),
["<C-Space>"] = cmp.mapping.complete(),
["<C-e>"] = cmp.mapping.close(),
["<CR>"] = cmp.mapping.confirm({ select = true }),
["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
elseif luasnip.locally_jumpable(1) then
luasnip.jump(1)
else
fallback()
end
end, { "i", "s" }),
["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif luasnip.locally_jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
end, { "i", "s" }),
}),
-- sources for autocompletion
-- !! Priority is important - autocompletion will be ordered from top to bottom
sources = cmp.config.sources({
{ name = "nvim_lsp" }, -- nvim LSP servers
{ name = "luasnip" }, -- snippets
{ name = "buffer" }, -- text within current buffer
{ name = "path" }, -- file system paths
}),
-- configure lspkind for vs-code like pictograms in completion menu
formatting = {
format = lspkind.cmp_format({
maxwidth = 50,
ellipsis_char = "...",
}),
},
})
cmp.setup.filetype({ "sql" }, {
sources = {
{ name = "vim-dadbod-completion" },
{ name = "buffer" }
}
})
end,
}

View file

@ -1,43 +0,0 @@
return {
}
-- return {
-- "nvim-tree/nvim-tree.lua",
-- dependencies = "nvim-tree/nvim-web-devicons",
-- config = function()
-- local nvimtree = require("nvim-tree")
-- -- recommended settings from nvim-tree documentation
-- vim.g.loaded_netrw = 1
-- vim.g.loaded_netrwPlugin = 1
--
-- nvimtree.setup({
-- view = {
-- -- width = 35,
-- adaptive_size = true,
-- relativenumber = true,
-- },
-- -- disable window_picker for explorer to work well with window splits
-- actions = {
-- open_file = {
-- window_picker = {
-- enable = true,
-- },
-- },
-- },
-- -- Custom list of vim regex for names that will not be shown
-- filters = {
-- custom = { ".DS_Store" },
-- },
-- -- Show files ignored by git
-- git = {
-- ignore = false,
-- },
-- })
--
-- -- set nvim-tree keypmaps
-- local keymap = vim.keymap
-- keymap.set('n', '<leader>nt', ':NvimTreeToggle<CR>', {desc = "Toggle file explorer"})
-- keymap.set('n', '<leader>nf', ':NvimTreeFindFileToggle<CR>', {desc = "Toggle file explorer on current file"})
--
-- end
-- }

View file

@ -1,32 +0,0 @@
return {
"epwalsh/obsidian.nvim",
version = "*", -- recommended, use latest release instead of latest commit
lazy = true,
ft = "markdown",
dependencies = {
-- Required.
"nvim-lua/plenary.nvim",
},
opts = {
workspaces = {
{
name = "personal",
path = os.getenv("OBSIDIAN_NOTES_PATH"),
},
},
templates = {
folder = "Templates",
date_format = "%d.%m.%Y",
time_format = "%H:%M",
},
-- disable adding properties on top of file on save
disable_frontmatter = true,
ui = {
enable = false
},
follow_url_func = function(url)
print("Hello from URL")
vim.fn.jobstart({ "xdg-open", url })
end,
},
}

View file

@ -1,3 +0,0 @@
return {
"nvim-lua/plenary.nvim"
}

View file

@ -1,3 +0,0 @@
return {
"simrat39/rust-tools.nvim",
}

View file

@ -1,41 +0,0 @@
return {
"nvim-telescope/telescope.nvim",
tag = "0.1.6",
dependencies = {
"nvim-lua/plenary.nvim",
-- Improving performance of finder
{ "nvim-telescope/telescope-fzf-native.nvim", build = "make" },
-- Display dev icons
"nvim-tree/nvim-web-devicons",
"folke/todo-comments.nvim",
},
config = function()
local telescope = require("telescope")
local actions = require("telescope.actions")
telescope.setup({
defaults = {
path_display = { "smart" },
mappings = {
i = {
["<C-k>"] = actions.move_selection_previous, -- move to prev result
["<C-j>"] = actions.move_selection_next, -- move to next result
},
},
},
})
telescope.load_extension("fzf") -- load FZF extension to improve performance
local builtin = require("telescope.builtin")
local keymap = vim.keymap
keymap.set("n", "<leader>ff", builtin.find_files, { desc = "FZF: find files in cwd" })
keymap.set("n", "<leader>fml", builtin.marks, { desc = "FZF: find marks list" })
keymap.set("n", "<leader>fmp", builtin.man_pages, { desc = "FZF: find available man pages" })
keymap.set("n", "<leader>fg", builtin.live_grep, { desc = "FZF: find string in cwd" })
keymap.set("n", "<leader>fb", builtin.buffers, { desc = "FZF: display opened buffers" })
keymap.set("n", "<leader>fh", builtin.help_tags, { desc = "FZF: display help tags" })
keymap.set("n", "<leader>ft", "<cmd>TodoTelescope<cr>", { desc = "FZF: display TODO comments" })
keymap.set("n", "<leader>fds", builtin.lsp_document_symbols, { desc = "FZF: Document symbols" })
end,
}

View file

@ -1,21 +0,0 @@
return {
"folke/todo-comments.nvim",
event = { "BufReadPre", "BufNewFile" },
dependencies = { "nvim-lua/plenary.nvim" },
config = function()
local todo_comments = require("todo-comments")
-- set keymaps
local keymap = vim.keymap -- for conciseness
keymap.set("n", "]t", function()
todo_comments.jump_next()
end, { desc = "Next todo comment" })
keymap.set("n", "[t", function()
todo_comments.jump_prev()
end, { desc = "Previous todo comment" })
todo_comments.setup()
end,
}

View file

@ -1,66 +0,0 @@
return {
"nvim-treesitter/nvim-treesitter",
-- open this plugin on two events:
-- BufReadPre - open existing file
-- BufNewFile - open new file
event = { "BufReadPre", "BufNewFile" },
build = ":TSUpdate", -- Run whenever this plugin is installed or updated
dependencies = {
"windwp/nvim-ts-autotag", -- Auto-closing functionality within treesitter
},
config = function()
-- import nvim-treesitter plugin
local treesitter = require("nvim-treesitter.configs")
-- Configure treesitter
-- treesitter.setup({
-- -- enable syntax highlighting
-- highligh = {
-- enable = true,
-- },
--
-- -- enable better indentation
-- indent = {
-- enable = true,
-- },
--
-- -- enable auto-tagging
-- autotag = {
-- enable = true,
-- },
--
-- -- ensure these languages parsers are installed
-- ensure_installed = {
-- "python",
-- "go",
-- "lua",
-- "bash",
-- "json",
-- "javascript",
-- "jq",
-- "markdown",
-- "markdown_inline",
-- "regex",
-- "vim",
-- "dockerfile",
-- },
-- })
-- end,
treesitter.setup({
ensure_installed = {
"python",
"lua",
"vim",
"vimdoc",
"query",
"elixir",
"heex",
"javascript",
"html",
},
sync_install = false,
highlight = { enable = true },
indent = { enable = true },
})
end,
}

View file

@ -1,37 +0,0 @@
return {
"folke/trouble.nvim",
opts = {}, -- for default options, refer to the configuration section for custom setup.
cmd = "Trouble",
keys = {
{
"<leader>xx",
"<cmd>Trouble diagnostics toggle<cr>",
desc = "Diagnostics (Trouble)",
},
{
"<leader>xX",
"<cmd>Trouble diagnostics toggle filter.buf=0<cr>",
desc = "Buffer Diagnostics (Trouble)",
},
{
"<leader>cs",
"<cmd>Trouble symbols toggle focus=false<cr>",
desc = "Symbols (Trouble)",
},
{
"<leader>cl",
"<cmd>Trouble lsp toggle focus=false win.position=right<cr>",
desc = "LSP Definitions / references / ... (Trouble)",
},
{
"<leader>xL",
"<cmd>Trouble loclist toggle<cr>",
desc = "Location List (Trouble)",
},
{
"<leader>xQ",
"<cmd>Trouble qflist toggle<cr>",
desc = "Quickfix List (Trouble)",
},
},
}

View file

@ -1,17 +0,0 @@
return {
"christoomey/vim-tmux-navigator",
cmd = {
"TmuxNavigateLeft",
"TmuxNavigateDown",
"TmuxNavigateUp",
"TmuxNavigateRight",
"TmuxNavigatePrevious",
},
keys = {
{ "<c-h>", "<cmd><C-U>TmuxNavigateLeft<cr>" },
{ "<c-j>", "<cmd><C-U>TmuxNavigateDown<cr>" },
{ "<c-k>", "<cmd><C-U>TmuxNavigateUp<cr>" },
{ "<c-l>", "<cmd><C-U>TmuxNavigateRight<cr>" },
{ "<c-\\>", "<cmd><C-U>TmuxNavigatePrevious<cr>" },
},
}

View file

@ -1,19 +0,0 @@
return {
"folke/which-key.nvim",
-- Telling nvim that it can load this plugin later, and that it is not
-- that important for initial UI
event = "VeryLazy",
-- Function that will run while neovim startup instead of when plugin is actualy loads
init = function()
-- How long which-key will wait until activation
vim.o.timeout = true
vim.o.timeoutlen = 500
end,
-- Options that will pass to setup function, but we are leaving it empty to use
-- default configuration
opts = {
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
}
}

View file

@ -1,17 +0,0 @@
{
"for statement": {
"prefix": "for",
"body": "for ${1:i} := 0; $1 < ${2:count}; $1${3:++} {\n\t$0\n}",
"description": "Snippet for a for loop"
},
"for range statement": {
"prefix": "forrrrrr",
"body": "for ${1:_, }${2:var} := range ${3:var} {\n\t$0\n}",
"description": "Snippet for a for range loop"
},
"if err != nil": {
"prefix": "iferr",
"body": "if err != nil {\n\t${1:return ${2:nil, }${3:err}}\n}",
"description": "Snippet for if err != nil"
}
}

View file

@ -1,20 +0,0 @@
{
"name": "custom-snippets",
"engines": {
"vscode": "^1.11.0"
},
"contributes": {
"snippets": [
{
"language": "python",
"path": "./python.json"
},
{
"language": "go",
"path": "./go.json"
}
]
}
}

View file

@ -1,36 +0,0 @@
{
"implog": {
"prefix": "implog",
"body": [
"import logging",
"_log = logging.getLogger(__name__)"
],
"description": "Snippet for importing logger"
},
"Log event": {
"prefix": "logevent",
"body": [
"_log.error('${1:delimiter}' * 60)",
"_log.error(${2})",
"_log.error('${1:delimiter}' * 60)"
],
"description": "Snippet for inserting error log"
},
"Log debug": {
"prefix": "logdebug",
"body": [
"_log.debug(${1:deug_body})"
],
"description": "Snippet for inserting debug log"
},
"tryexcept": {
"prefix": "tryexe",
"body": [
"try:",
" print(x)",
"except ${1:exception}:",
" print('An exception occurred')"
],
"description": "tryexcept method"
}
}