summaryrefslogtreecommitdiff
path: root/config/essentials/nvim/lua/user
diff options
context:
space:
mode:
authorRaymaekers Luca <raymaekers.luca@gmail.com>2023-03-15 15:03:55 +0100
committerRaymaekers Luca <raymaekers.luca@gmail.com>2023-03-15 15:03:55 +0100
commitc130f7285f250077336d0930898dbbeddb00b9f7 (patch)
treec6155f2219070ee64f3d1e2694da7afdff14a085 /config/essentials/nvim/lua/user
parenta328343e3f92e6c7e1a1f8069b80db698c900f8d (diff)
chnaged tlast to 'user' to be more generic
Diffstat (limited to 'config/essentials/nvim/lua/user')
-rw-r--r--config/essentials/nvim/lua/user/aucommands.vim21
-rw-r--r--config/essentials/nvim/lua/user/cmp/arduino.lua3
-rw-r--r--config/essentials/nvim/lua/user/cmp/bash.lua1
-rw-r--r--config/essentials/nvim/lua/user/cmp/clangd.lua2
-rw-r--r--config/essentials/nvim/lua/user/cmp/css.lua1
-rw-r--r--config/essentials/nvim/lua/user/cmp/emmet.lua1
-rw-r--r--config/essentials/nvim/lua/user/cmp/html.lua7
-rw-r--r--config/essentials/nvim/lua/user/cmp/init.lua12
-rw-r--r--config/essentials/nvim/lua/user/cmp/java.lua1
-rw-r--r--config/essentials/nvim/lua/user/cmp/js.lua1
-rw-r--r--config/essentials/nvim/lua/user/cmp/lua.lua20
-rw-r--r--config/essentials/nvim/lua/user/cmp/python.lua1
-rw-r--r--config/essentials/nvim/lua/user/cmp/setup.lua49
-rw-r--r--config/essentials/nvim/lua/user/init.lua6
-rw-r--r--config/essentials/nvim/lua/user/packer.lua57
-rw-r--r--config/essentials/nvim/lua/user/remap.lua101
-rw-r--r--config/essentials/nvim/lua/user/set.lua43
-rw-r--r--config/essentials/nvim/lua/user/zk.lua56
18 files changed, 383 insertions, 0 deletions
diff --git a/config/essentials/nvim/lua/user/aucommands.vim b/config/essentials/nvim/lua/user/aucommands.vim
new file mode 100644
index 0000000..732985f
--- /dev/null
+++ b/config/essentials/nvim/lua/user/aucommands.vim
@@ -0,0 +1,21 @@
+" Absolute numbers if window isn't focused
+augroup numbertoggle
+ autocmd!
+ autocmd BufEnter,FocusGained,WinEnter * if &nu | set rnu | endif
+ autocmd BufLeave,FocusLost,WinLeave * if &nu | set nornu | endif
+augroup END
+
+" terminal specific layout
+augroup neovim_terminal autocmd!
+ autocmd TermOpen * startinsert
+ autocmd TermOpen * :GitGutterBufferDisable
+ autocmd TermOpen * :set nonumber norelativenumber signcolumn=no
+ autocmd TermOpen * nnoremap <buffer> <C-c> i<C-c>
+augroup END
+
+" Return to last edit position
+autocmd BufReadPost *
+ \ if line("'\"") > 1 && line("'\"") <= line("$") |
+ \ exe "normal! g`\"" |
+ \ endif
+
diff --git a/config/essentials/nvim/lua/user/cmp/arduino.lua b/config/essentials/nvim/lua/user/cmp/arduino.lua
new file mode 100644
index 0000000..777df8d
--- /dev/null
+++ b/config/essentials/nvim/lua/user/cmp/arduino.lua
@@ -0,0 +1,3 @@
+require'lspconfig'.arduino_language_server.setup{
+ cmd = {"arduino-language-server", "-cli-config", "~/.arduinoIDE/arduino-cli.yaml"}
+}
diff --git a/config/essentials/nvim/lua/user/cmp/bash.lua b/config/essentials/nvim/lua/user/cmp/bash.lua
new file mode 100644
index 0000000..91b6fba
--- /dev/null
+++ b/config/essentials/nvim/lua/user/cmp/bash.lua
@@ -0,0 +1 @@
+require'lspconfig'.bashls.setup{}
diff --git a/config/essentials/nvim/lua/user/cmp/clangd.lua b/config/essentials/nvim/lua/user/cmp/clangd.lua
new file mode 100644
index 0000000..810aa42
--- /dev/null
+++ b/config/essentials/nvim/lua/user/cmp/clangd.lua
@@ -0,0 +1,2 @@
+-- c cpp
+require'lspconfig'.clangd.setup{}
diff --git a/config/essentials/nvim/lua/user/cmp/css.lua b/config/essentials/nvim/lua/user/cmp/css.lua
new file mode 100644
index 0000000..07cb8bc
--- /dev/null
+++ b/config/essentials/nvim/lua/user/cmp/css.lua
@@ -0,0 +1 @@
+require'lspconfig'.cssls.setup{}
diff --git a/config/essentials/nvim/lua/user/cmp/emmet.lua b/config/essentials/nvim/lua/user/cmp/emmet.lua
new file mode 100644
index 0000000..3193727
--- /dev/null
+++ b/config/essentials/nvim/lua/user/cmp/emmet.lua
@@ -0,0 +1 @@
+require'lspconfig'.emmet_ls.setup{}
diff --git a/config/essentials/nvim/lua/user/cmp/html.lua b/config/essentials/nvim/lua/user/cmp/html.lua
new file mode 100644
index 0000000..69ed29d
--- /dev/null
+++ b/config/essentials/nvim/lua/user/cmp/html.lua
@@ -0,0 +1,7 @@
+-- html
+local capabilities = vim.lsp.protocol.make_client_capabilities()
+capabilities.textDocument.completion.completionItem.snippetSupport = true
+
+require'lspconfig'.html.setup {
+ capabilities = capabilities,
+}
diff --git a/config/essentials/nvim/lua/user/cmp/init.lua b/config/essentials/nvim/lua/user/cmp/init.lua
new file mode 100644
index 0000000..a545f12
--- /dev/null
+++ b/config/essentials/nvim/lua/user/cmp/init.lua
@@ -0,0 +1,12 @@
+require("user.cmp.setup")
+
+require("user.cmp.arduino")
+require("user.cmp.bash")
+require("user.cmp.clangd")
+require("user.cmp.html")
+require("user.cmp.css")
+require("user.cmp.java")
+require("user.cmp.js")
+require("user.cmp.emmet")
+require("user.cmp.lua")
+require("user.cmp.python")
diff --git a/config/essentials/nvim/lua/user/cmp/java.lua b/config/essentials/nvim/lua/user/cmp/java.lua
new file mode 100644
index 0000000..7d13fb3
--- /dev/null
+++ b/config/essentials/nvim/lua/user/cmp/java.lua
@@ -0,0 +1 @@
+require'lspconfig'.jdtls.setup{}
diff --git a/config/essentials/nvim/lua/user/cmp/js.lua b/config/essentials/nvim/lua/user/cmp/js.lua
new file mode 100644
index 0000000..7188a22
--- /dev/null
+++ b/config/essentials/nvim/lua/user/cmp/js.lua
@@ -0,0 +1 @@
+require'lspconfig'.tsserver.setup{}
diff --git a/config/essentials/nvim/lua/user/cmp/lua.lua b/config/essentials/nvim/lua/user/cmp/lua.lua
new file mode 100644
index 0000000..e594870
--- /dev/null
+++ b/config/essentials/nvim/lua/user/cmp/lua.lua
@@ -0,0 +1,20 @@
+-- lua
+require'lspconfig'.lua_ls.setup {
+ settings = {
+ Lua = {
+ runtime = {
+ version = 'LuaJIT',
+ },
+ diagnostics = {
+ globals = {'vim'},
+ },
+ workspace = {
+ library = vim.api.nvim_get_runtime_file("", true),
+ checkThirdParty = false, -- no prompt for luassert :)
+ },
+ telemetry = {
+ enable = false,
+ },
+ },
+ },
+}
diff --git a/config/essentials/nvim/lua/user/cmp/python.lua b/config/essentials/nvim/lua/user/cmp/python.lua
new file mode 100644
index 0000000..aec86bd
--- /dev/null
+++ b/config/essentials/nvim/lua/user/cmp/python.lua
@@ -0,0 +1 @@
+require'lspconfig'.jedi_language_server.setup{}
diff --git a/config/essentials/nvim/lua/user/cmp/setup.lua b/config/essentials/nvim/lua/user/cmp/setup.lua
new file mode 100644
index 0000000..ed8a2d2
--- /dev/null
+++ b/config/essentials/nvim/lua/user/cmp/setup.lua
@@ -0,0 +1,49 @@
+local cmp = require'cmp'
+cmp.setup({
+ snippet = {
+ expand = function(args)
+ require('luasnip').lsp_expand(args.body)
+ end,
+ },
+ window = {
+ -- completion = cmp.config.window.bordered(),
+ -- documentation = cmp.config.window.bordered(),
+ },
+ mapping = cmp.mapping.preset.insert({
+ ['<C-b>'] = cmp.mapping.scroll_docs(-4),
+ ['<C-f>'] = cmp.mapping.scroll_docs(4),
+ ['<C-Space>'] = cmp.mapping.complete(),
+ ['<C-c>'] = cmp.mapping.abort(),
+ ['<C-y>'] = cmp.mapping.confirm({ select = true }),
+ }),
+ sources = cmp.config.sources({
+ { name = 'nvim_lua' },
+ { name = 'nvim_lsp'},
+ { name = 'path' },
+ { name = 'luasnip' },
+ { name = 'nvim_lsp_signature_help' },
+ { name = 'buffer', keyword_length = 4 },
+ }),
+ preselect = cmp.PreselectMode.None,
+})
+
+cmp.setup.filetype('gitcommit', {
+ sources = cmp.config.sources({
+ { name = 'cmp_git' },
+ { name = 'buffer', keyword_length = 4 },
+ })
+})
+
+cmp.setup.cmdline({ '/', '?' }, {
+ mapping = cmp.mapping.preset.cmdline(),
+ sources = {
+ { name = 'buffer', keyword_length = 4 }
+ },
+})
+cmp.setup.cmdline(':', {
+ mapping = cmp.mapping.preset.cmdline(),
+ sources = cmp.config.sources({
+ { name = 'path' },
+ { name = 'cmdline', keyword_length = 4 }
+ }),
+})
diff --git a/config/essentials/nvim/lua/user/init.lua b/config/essentials/nvim/lua/user/init.lua
new file mode 100644
index 0000000..a9ba9c4
--- /dev/null
+++ b/config/essentials/nvim/lua/user/init.lua
@@ -0,0 +1,6 @@
+require("user.packer")
+require("user.remap")
+require("user.set")
+require("user.cmp")
+require("user.zk")
+vim.cmd.source(vim.fn.stdpath("config") .. "/lua/user/aucommands.vim")
diff --git a/config/essentials/nvim/lua/user/packer.lua b/config/essentials/nvim/lua/user/packer.lua
new file mode 100644
index 0000000..931e7d4
--- /dev/null
+++ b/config/essentials/nvim/lua/user/packer.lua
@@ -0,0 +1,57 @@
+return require('packer').startup(function(use)
+ use('wbthomason/packer.nvim')
+
+ -- files
+ use {
+ 'nvim-telescope/telescope.nvim', tag = '0.1.1',
+ requires = { {'nvim-lua/plenary.nvim'} }
+ }
+ use('nvim-telescope/telescope-symbols.nvim')
+ use('theprimeagen/harpoon')
+
+ -- colors
+ use('shaunsingh/nord.nvim')
+ use('norcalli/nvim-colorizer.lua')
+
+ use('airblade/vim-gitgutter')
+
+ use('nvim-treesitter/nvim-treesitter', {run = ':TSUpdate'})
+ use('nvim-treesitter/playground')
+
+ use('mbbill/undotree')
+
+ use('tpope/vim-capslock')
+ use('tpope/vim-commentary')
+ use('tpope/vim-endwise')
+ use('tpope/vim-fugitive')
+ use('tpope/vim-repeat')
+ use('tpope/vim-surround')
+ use('tpope/vim-vinegar')
+
+ -- utils
+ use('godlygeek/tabular')
+ use('renerocksai/calendar-vim')
+ use('LordTlasT/live-server')
+ use('ojroques/vim-oscyank', {branch = "main"})
+ use("potamides/pantran.nvim")
+
+ -- objects
+ use('michaeljsmith/vim-indent-object')
+
+ -- completion
+ use('neovim/nvim-lspconfig')
+ use('hrsh7th/nvim-cmp')
+ use('hrsh7th/cmp-nvim-lua')
+ use('hrsh7th/cmp-nvim-lsp')
+ use('hrsh7th/cmp-buffer')
+ use('hrsh7th/cmp-path')
+ use('hrsh7th/cmp-cmdline')
+ use('hrsh7th/cmp-nvim-lsp-signature-help')
+ use('alvan/vim-closetag')
+ -- snippets
+ use('L3MON4D3/LuaSnip')
+ use('saadparwaiz1/cmp_luasnip')
+
+ -- notes
+ use('renerocksai/telekasten.nvim')
+end)
diff --git a/config/essentials/nvim/lua/user/remap.lua b/config/essentials/nvim/lua/user/remap.lua
new file mode 100644
index 0000000..962ce46
--- /dev/null
+++ b/config/essentials/nvim/lua/user/remap.lua
@@ -0,0 +1,101 @@
+vim.g.mapleader = " "
+vim.g.maplocalleader = "\\"
+
+-- -- vinegar is already doing this
+-- vim.keymap.set("n", "-", vim.cmd.Ex)
+
+-- moving
+vim.keymap.set("i", "<C-a>", "<C-o>I", { noremap = true })
+vim.keymap.set("i", "<C-e>", "<C-o>A", { noremap = true })
+vim.keymap.set("i", "<C-k>", "<C-o>D", { noremap = true })
+
+vim.keymap.set("i", "{<cr>", "{<cr>}<C-o>O", { noremap = true })
+vim.keymap.set("i", "{;<cr>", "{<cr>};<C-o>O", { noremap = true })
+
+-- buffers
+vim.keymap.set("n", "gb", "<cmd>buffers<cr>:buffer<Space>", { noremap = true })
+vim.keymap.set("n", "<Leader>q", "<cmd>q!<cr>", { noremap = true })
+vim.keymap.set("n", "<Leader>Q", "<cmd>qa!<cr>", { noremap = true })
+
+-- Windows
+vim.keymap.set("n", "<A-h>", "<C-W>h", { noremap = true })
+vim.keymap.set("n", "<A-j>", "<C-W>j", { noremap = true })
+vim.keymap.set("n", "<A-k>", "<C-W>k", { noremap = true })
+vim.keymap.set("n", "<A-l>", "<C-W>l", { noremap = true })
+vim.keymap.set("n", "<A-o>", "<C-W>o", { noremap = true })
+-- command line
+vim.keymap.set("c", "<M-b>", "<C-Left>", { noremap = true })
+vim.keymap.set("c", "<M-f>", "<C-Right>", { noremap = true })
+vim.keymap.set("c", "<M-d>", "<C-Right><C-w>", { noremap = true })
+
+-- move visual selection up/down wards
+vim.keymap.set("v", "J", "<cmd>m '>+1<cr>gv=gv<cr>", { noremap = true })
+vim.keymap.set("v", "K", "<cmd>m '<-2<cr>gv=gv<cr>", { noremap = true })
+
+-- clipboard
+vim.keymap.set("n", "<Leader>y", "\"+y", { noremap = true })
+vim.keymap.set("n", "<Leader>o", "<Plug>OSCYank", { noremap = true })
+
+-- templates
+vim.keymap.set("n", "<LocalLeader>rt", ":-1r " .. vim.fn.stdpath("config") .. "/templates", { noremap = true })
+
+-- hide all
+local s = {hidden_all = 0}
+vim.keymap.set("n", "<C-h>", function ()
+ s.hidden_all = 1 - s.hidden_all
+ local opt = s.hidden_all == 0
+ vim.opt.showmode = opt
+ vim.opt.ruler = opt
+ vim.opt.nu = opt
+ vim.opt.rnu = opt
+ vim.opt.showcmd = opt
+ vim.opt.laststatus = opt and 2 or 0
+ vim.opt.signcolumn = opt and "yes" or "no"
+end, { noremap = true })
+
+-- utils
+vim.keymap.set("i", "<LocalLeader>r", "<cmd>r!echo -n $RANDOM<cr><esc>kJA", { noremap = true })
+-- ordered list
+vim.keymap.set("n", "<LocalLeader>n", "0vap<C-v>I0. <esc>gvg<C-a>", { noremap = true })
+vim.keymap.set("v", "<Leader>u", "<cmd>'<,'>s/^[0-9]\\+\\. //<cr><esc>", { noremap = true })
+-- scripts
+vim.keymap.set("n", "<Leader>x", "<cmd>!chmod +x %<cr>", { noremap = true, silent = true})
+-- replace
+vim.keymap.set("n", "<Leader>sf", [[:%s/\<<C-r><C-w>\>/<C-r><C-w><C-w>/gI<Left><Left><Left>]])
+vim.keymap.set("n", "<Leader>sl", [[:s/\<<C-r><C-w>\>/<C-r><C-w><C-w>/gI<Left><Left><Left>]])
+
+-- write
+vim.keymap.set("n", "<LocalLeader>w", "<cmd>write<cr>", { noremap = true })
+vim.keymap.set("n", "<LocalLeader>W", "<cmd>write!<cr>", { noremap = true })
+vim.keymap.set("n", "<LocalLeader>e", "<cmd>edit<cr>", { noremap = true })
+vim.keymap.set("n", "<LocalLeader>s", function ()
+ vim.cmd.source()
+ print("sourced.")
+end, { noremap = true })
+
+-- Packer
+vim.keymap.set("n", "<Leader>P", "<cmd>PackerSync<cr>", { noremap = true })
+
+-- spelling
+vim.keymap.set("n", "<Leader><C-s>", "<cmd>setlocal spell!<cr>", { noremap = true })
+
+-- open terminal in file's parent director
+-- this needs to be asynchrous
+vim.keymap.set("n", "<Return>", function ()
+ local cmd = "cd " .. vim.fn.expand("%:p:h") .. "; setsid st"
+ -- asynchrous go brr
+ vim.fn.jobstart(cmd, { on_exit = function(job_id, exit_code, event_type) end })
+end, { noremap = true })
+
+
+-- clear registers
+vim.keymap.set("n", "<Leader>rc", function ()
+ local regs = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
+ 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
+ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
+ 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
+ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '/', '-', '"'}
+ for _, r in ipairs(regs) do
+ vim.fn.setreg(r, {})
+ end
+end, { noremap = true })
diff --git a/config/essentials/nvim/lua/user/set.lua b/config/essentials/nvim/lua/user/set.lua
new file mode 100644
index 0000000..69ee4ae
--- /dev/null
+++ b/config/essentials/nvim/lua/user/set.lua
@@ -0,0 +1,43 @@
+local opt = vim.opt
+
+opt.clipboard = "unnamed"
+
+opt.termguicolors = true
+
+opt.number = true
+opt.relativenumber = true
+opt.showmatch = true
+opt.matchtime = 0
+opt.showcmd = true
+opt.cursorline = true
+opt.ruler = true
+
+opt.path:append("**")
+
+opt.wildmenu = true
+opt.incsearch = true
+opt.hlsearch = false
+
+opt.mouse = ""
+
+opt.tabstop = 4
+opt.shiftwidth = 4
+opt.backspace = "indent,eol,start"
+
+opt.signcolumn = "yes"
+opt.updatetime = 100
+opt.laststatus = 2
+opt.history = 200
+opt.encoding = "utf-8"
+
+opt.smartindent = true
+opt.scrolloff = 8
+
+opt.ignorecase = true
+opt.smartcase = true
+
+opt.swapfile = false
+opt.backup = false
+
+opt.spelllang = "en_us,nl"
+opt.formatoptions = "cqrnj"
diff --git a/config/essentials/nvim/lua/user/zk.lua b/config/essentials/nvim/lua/user/zk.lua
new file mode 100644
index 0000000..a3cdefb
--- /dev/null
+++ b/config/essentials/nvim/lua/user/zk.lua
@@ -0,0 +1,56 @@
+local home = vim.fn.expand("~/docs/zk")
+require('telekasten').setup({
+ home = home,
+ take_over_my_home = true,
+ auto_set_filetype = true,
+ auto_set_syntax = true,
+ dailies = home .. '/' .. 'daily',
+ weeklies = home .. '/' .. 'weekly',
+ templates = home .. '/' .. 'templates',
+ image_subdir = "img",
+ extension = ".md",
+ new_note_filename = "title",
+ uuid_type = "%Y%m%d%H%M",
+ uuid_sep = "-",
+ filename_space_subst = nil,
+ follow_creates_nonexisting = true,
+ dailies_create_nonexisting = true,
+ weeklies_create_nonexisting = true,
+ journal_auto_open = false,
+ template_new_note = home .. '/' .. 'templates/new_note.md',
+ template_new_daily = home .. '/' .. 'templates/daily.md',
+ template_new_weekly= home .. '/' .. 'templates/weekly.md',
+ image_link_style = "markdown",
+ sort = "filename",
+ plug_into_calendar = true,
+ calendar_opts = {
+ weeknm = 4,
+ calendar_monday = 1,
+ calendar_mark = 'left-fit',
+ },
+ close_after_yanking = false,
+ insert_after_inserting = true,
+ tag_notation = "#tag",
+ command_palette_theme = "dropdown",
+ show_tags_theme = "ivy",
+ subdirs_in_links = true,
+ template_handling = "smart",
+ new_note_location = "smart",
+ rename_update_links = true,
+ media_previewer = "telescope-media-files",
+ follow_url_fallback = nil,
+})
+
+vim.keymap.set("n", "<leader>z", "<cmd>Telekasten panel<cr>")
+vim.keymap.set("n", "<leader>zN", "<cmd>Telekasten new_templated_note<cr>")
+vim.keymap.set("n", "<leader>zT", "<cmd>Telekasten goto_today<cr>")
+vim.keymap.set("n", "<leader>zW", "<cmd>Telekasten goto_thisweek<cr>")
+vim.keymap.set("n", "<leader>zd", "<cmd>Telekasten find_daily_notes<cr>")
+vim.keymap.set("n", "<leader>zf", "<cmd>Telekasten find_notes<cr>")
+vim.keymap.set("n", "<leader>zg", "<cmd>Telekasten search_notes<cr>")
+vim.keymap.set("n", "<leader>zm", "<cmd>Telekasten browse_media<cr>")
+vim.keymap.set("n", "<leader>zn", "<cmd>Telekasten new_note<cr>")
+vim.keymap.set("n", "<leader>zp", "<cmd>Telekasten preview_img<cr>")
+vim.keymap.set("n", "<leader>zs", "<cmd>Telekasten switch_vault<cr>")
+vim.keymap.set("n", "<leader>zw", "<cmd>Telekasten find_weekly_notes<cr>")
+vim.keymap.set("n", "<leader>#", "<cmd>Telekasten show_tags<cr>")