diff options
Diffstat (limited to 'config/essentials/nvim')
27 files changed, 436 insertions, 0 deletions
diff --git a/config/essentials/nvim/after/plugin/colorizer.lua b/config/essentials/nvim/after/plugin/colorizer.lua new file mode 100644 index 0000000..6ca374f --- /dev/null +++ b/config/essentials/nvim/after/plugin/colorizer.lua @@ -0,0 +1,6 @@ +require 'colorizer'.setup { + '*'; + html = { + mode = 'foreground'; + } +} diff --git a/config/essentials/nvim/after/plugin/colors.lua b/config/essentials/nvim/after/plugin/colors.lua new file mode 100644 index 0000000..516f097 --- /dev/null +++ b/config/essentials/nvim/after/plugin/colors.lua @@ -0,0 +1,16 @@ +function ColorMyPencils(color) + color = color or "nord" + vim.cmd.colorscheme(color) + vim.api.nvim_set_hl(0, "Normal", { bg = "none" }) + vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none" }) + vim.cmd.highlight("SignColumn guibg=none") + + vim.g.nord_uniform_diff_background = true + vim.g.nord_contrast = true + vim.g.nord_borders = true + local highlights = require("nord").bufferline.highlights({ + italic = true, + bold = true, + }) +end +ColorMyPencils() diff --git a/config/essentials/nvim/after/plugin/fugitive.lua b/config/essentials/nvim/after/plugin/fugitive.lua new file mode 100644 index 0000000..80c9070 --- /dev/null +++ b/config/essentials/nvim/after/plugin/fugitive.lua @@ -0,0 +1 @@ +vim.keymap.set("n", "<leader>gs", vim.cmd.Git) diff --git a/config/essentials/nvim/after/plugin/harpoon.lua b/config/essentials/nvim/after/plugin/harpoon.lua new file mode 100644 index 0000000..6f9c8ba --- /dev/null +++ b/config/essentials/nvim/after/plugin/harpoon.lua @@ -0,0 +1,10 @@ +local mark = require("harpoon.mark") +local ui = require("harpoon.ui") + +vim.keymap.set("n", "<leader>ha", mark.add_file) +vim.keymap.set("n", "<C-e>", ui.toggle_quick_menu) + +vim.keymap.set("n", "<leader>h1", function() ui.nav_file(1) end) +vim.keymap.set("n", "<leader>h2", function() ui.nav_file(2) end) +vim.keymap.set("n", "<leader>h3", function() ui.nav_file(3) end) +vim.keymap.set("n", "<leader>h4", function() ui.nav_file(4) end) diff --git a/config/essentials/nvim/after/plugin/telescope.lua b/config/essentials/nvim/after/plugin/telescope.lua new file mode 100644 index 0000000..7ea6db8 --- /dev/null +++ b/config/essentials/nvim/after/plugin/telescope.lua @@ -0,0 +1,8 @@ +local builtin = require('telescope.builtin') +vim.keymap.set('n', '<leader>pf', builtin.find_files, {}) +vim.keymap.set('n', '<leader>ps', builtin.live_grep, {}) +vim.keymap.set('n', '<C-p>', builtin.git_files, {}) +-- symbols +vim.keymap.set("n", "<leader>tse", "<cmd>lua require'telescope.builtin'.symbols{ sources = {'emoji', 'gitmoji'} }<CR>") +vim.keymap.set("n", "<leader>tsn", "<cmd>lua require'telescope.builtin'.symbols{ sources = {'nerd'} }<CR>") +vim.keymap.set("n", "<leader>tsj", "<cmd>lua require'telescope.builtin'.symbols{ sources = {'julia'} }<CR>") diff --git a/config/essentials/nvim/after/plugin/treesitter.lua b/config/essentials/nvim/after/plugin/treesitter.lua new file mode 100644 index 0000000..f7f726f --- /dev/null +++ b/config/essentials/nvim/after/plugin/treesitter.lua @@ -0,0 +1,16 @@ +require'nvim-treesitter.configs'.setup { + ensure_installed = { "c", "lua", "vim", "help", "diff"}, + + sync_install = false, + auto_install = true, + + highlight = { + enable = true, + + additional_vim_regex_highlighting = false, + + autotag = { + enable = true, + } + } +} diff --git a/config/essentials/nvim/after/plugin/undotree.lua b/config/essentials/nvim/after/plugin/undotree.lua new file mode 100644 index 0000000..b6b9276 --- /dev/null +++ b/config/essentials/nvim/after/plugin/undotree.lua @@ -0,0 +1 @@ +vim.keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle) diff --git a/config/essentials/nvim/after/plugin/zk.lua b/config/essentials/nvim/after/plugin/zk.lua new file mode 100644 index 0000000..a11f6df --- /dev/null +++ b/config/essentials/nvim/after/plugin/zk.lua @@ -0,0 +1,6 @@ +vim.cmd("hi tklink ctermfg=72 guifg=#81a1c1 cterm=bold,underline gui=bold,underline") +vim.cmd("hi tkBrackets ctermfg=gray guifg=gray") +vim.cmd("hi tkHighlight ctermbg=yellow ctermfg=red cterm=bold guibg=#ebcb8b guifg=black gui=bold") +vim.cmd("hi link CalNavi CalRuler") +vim.cmd("hi tkTagSep ctermfg=gray guifg=gray") +vim.cmd("hi tkTag ctermfg=175 guifg=#d3869B") diff --git a/config/essentials/nvim/init.lua b/config/essentials/nvim/init.lua new file mode 100644 index 0000000..7772f90 --- /dev/null +++ b/config/essentials/nvim/init.lua @@ -0,0 +1 @@ +require("tlast") diff --git a/config/essentials/nvim/lua/tlast/aucommands.vim b/config/essentials/nvim/lua/tlast/aucommands.vim new file mode 100644 index 0000000..732985f --- /dev/null +++ b/config/essentials/nvim/lua/tlast/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/tlast/cmp/arduino.lua b/config/essentials/nvim/lua/tlast/cmp/arduino.lua new file mode 100755 index 0000000..777df8d --- /dev/null +++ b/config/essentials/nvim/lua/tlast/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/tlast/cmp/clangd.lua b/config/essentials/nvim/lua/tlast/cmp/clangd.lua new file mode 100644 index 0000000..810aa42 --- /dev/null +++ b/config/essentials/nvim/lua/tlast/cmp/clangd.lua @@ -0,0 +1,2 @@ +-- c cpp +require'lspconfig'.clangd.setup{} diff --git a/config/essentials/nvim/lua/tlast/cmp/css.lua b/config/essentials/nvim/lua/tlast/cmp/css.lua new file mode 100644 index 0000000..07cb8bc --- /dev/null +++ b/config/essentials/nvim/lua/tlast/cmp/css.lua @@ -0,0 +1 @@ +require'lspconfig'.cssls.setup{} diff --git a/config/essentials/nvim/lua/tlast/cmp/emmet.lua b/config/essentials/nvim/lua/tlast/cmp/emmet.lua new file mode 100644 index 0000000..3193727 --- /dev/null +++ b/config/essentials/nvim/lua/tlast/cmp/emmet.lua @@ -0,0 +1 @@ +require'lspconfig'.emmet_ls.setup{} diff --git a/config/essentials/nvim/lua/tlast/cmp/html.lua b/config/essentials/nvim/lua/tlast/cmp/html.lua new file mode 100644 index 0000000..69ed29d --- /dev/null +++ b/config/essentials/nvim/lua/tlast/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/tlast/cmp/init.lua b/config/essentials/nvim/lua/tlast/cmp/init.lua new file mode 100644 index 0000000..90e6024 --- /dev/null +++ b/config/essentials/nvim/lua/tlast/cmp/init.lua @@ -0,0 +1,10 @@ +require("tlast.cmp.setup") + +require("tlast.cmp.arduino") +require("tlast.cmp.clangd") +require("tlast.cmp.html") +require("tlast.cmp.css") +require("tlast.cmp.js") +require("tlast.cmp.emmet") +require("tlast.cmp.lua") +require("tlast.cmp.python") diff --git a/config/essentials/nvim/lua/tlast/cmp/js.lua b/config/essentials/nvim/lua/tlast/cmp/js.lua new file mode 100644 index 0000000..7188a22 --- /dev/null +++ b/config/essentials/nvim/lua/tlast/cmp/js.lua @@ -0,0 +1 @@ +require'lspconfig'.tsserver.setup{} diff --git a/config/essentials/nvim/lua/tlast/cmp/lua.lua b/config/essentials/nvim/lua/tlast/cmp/lua.lua new file mode 100644 index 0000000..e594870 --- /dev/null +++ b/config/essentials/nvim/lua/tlast/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/tlast/cmp/python.lua b/config/essentials/nvim/lua/tlast/cmp/python.lua new file mode 100644 index 0000000..aec86bd --- /dev/null +++ b/config/essentials/nvim/lua/tlast/cmp/python.lua @@ -0,0 +1 @@ +require'lspconfig'.jedi_language_server.setup{} diff --git a/config/essentials/nvim/lua/tlast/cmp/setup.lua b/config/essentials/nvim/lua/tlast/cmp/setup.lua new file mode 100644 index 0000000..67baf9e --- /dev/null +++ b/config/essentials/nvim/lua/tlast/cmp/setup.lua @@ -0,0 +1,47 @@ +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 = 'buffer'}, + }), +}) + +cmp.setup.filetype('gitcommit', { + sources = cmp.config.sources({ + { name = 'cmp_git' }, + { name = 'buffer' }, + }) +}) + +cmp.setup.cmdline({ '/', '?' }, { + mapping = cmp.mapping.preset.cmdline(), + sources = { + { name = 'buffer' } + }, +}) +cmp.setup.cmdline(':', { + mapping = cmp.mapping.preset.cmdline(), + sources = cmp.config.sources({ + { name = 'path' }, + { name = 'cmdline', keyword_length = 3 } + }), +}) diff --git a/config/essentials/nvim/lua/tlast/init.lua b/config/essentials/nvim/lua/tlast/init.lua new file mode 100644 index 0000000..9a9f387 --- /dev/null +++ b/config/essentials/nvim/lua/tlast/init.lua @@ -0,0 +1,6 @@ +require("tlast.packer") +require("tlast.remap") +require("tlast.set") +require("tlast.cmp") +require("tlast.zk") +vim.cmd.source(vim.fn.stdpath("config") .. "/lua/tlast/aucommands.vim") diff --git a/config/essentials/nvim/lua/tlast/packer.lua b/config/essentials/nvim/lua/tlast/packer.lua new file mode 100644 index 0000000..8bc9e3b --- /dev/null +++ b/config/essentials/nvim/lua/tlast/packer.lua @@ -0,0 +1,68 @@ +return require('packer').startup(function(use) + use('wbthomason/packer.nvim') + + -- files + use { + 'nvim-telescope/telescope.nvim', tag = '0.1.0', + requires = { {'nvim-lua/plenary.nvim'} } + } + use('nvim-telescope/telescope-symbols.nvim') + use('theprimeagen/harpoon') + + -- colors + use('shaunsingh/nord.nvim') + use('folke/tokyonight.nvim') + use { + 'glepnir/dashboard-nvim', + event = 'VimEnter', + config = { + theme = 'hyper', + }, + requires = {'nvim-tree/nvim-web-devicons'} + } + 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"}) + + -- 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') + + -- snippets + use('L3MON4D3/LuaSnip') + use('saadparwaiz1/cmp_luasnip') + + -- notes + use('renerocksai/telekasten.nvim') + use({ + "iamcco/markdown-preview.nvim", + run = function() vim.fn["mkdp#util#install"]() end, + }) +end) diff --git a/config/essentials/nvim/lua/tlast/remap.lua b/config/essentials/nvim/lua/tlast/remap.lua new file mode 100644 index 0000000..d87c9d0 --- /dev/null +++ b/config/essentials/nvim/lua/tlast/remap.lua @@ -0,0 +1,62 @@ +vim.g.mapleader = " " + +vim.keymap.set("n", "-", vim.cmd.Ex) + +-- moving +vim.keymap.set("i", "<C-a>", "<C-o>I") +vim.keymap.set("i", "<C-e>", "<C-o>A") + +-- add closing +vim.keymap.set("i", "\"", "\"\"<Left>") +vim.keymap.set("i", "'", "''<Left>") +vim.keymap.set("i", "(", "()<Left>") +vim.keymap.set("i", "[", "[]<Left>") +vim.keymap.set("i", "{", "{}<Left>") +vim.keymap.set("i", "{<CR>", "{<CR>}<C-o>O") +vim.keymap.set("i", "{;<CR>", "{<CR>};<C-o>O") + +-- buffers +vim.keymap.set("n", "gb", "<cmd>buffers<CR>:buffer<Space>") +vim.keymap.set("n", "<leader>q", "<cmd>q!<CR>") +vim.keymap.set("n", "<leader>Q", "<cmd>qa!<CR>") + +-- Windows +vim.keymap.set({"n", "i", "v", "c", "o", "s", "x"}, "<A-h>", "<C-W>h") +vim.keymap.set({"n", "i", "v", "c", "o", "s", "x"}, "<A-j>", "<C-W>j") +vim.keymap.set({"n", "i", "v", "c", "o", "s", "x"}, "<A-k>", "<C-W>k") +vim.keymap.set({"n", "i", "v", "c", "o", "s", "x"}, "<A-l>", "<C-W>l") +vim.keymap.set({"n", "i", "v", "c", "o", "s", "x"}, "<A-o>", "<C-W>o") + +-- move visual selection up/down wards +vim.keymap.set("v", "J", "<cmd>m '>+1<CR>gv=gv") +vim.keymap.set("v", "K", "<cmd>m '<-2<CR>gv=gv") + +-- Don't move! +vim.keymap.set("n", "J", "mzJ`z") + +-- clipboard +vim.keymap.set("n", "<leader>y", "\"+y") +vim.keymap.set("n", "<leader>o", "<Plug>OSCYank") + +-- scripts +vim.keymap.set("n", "<leader>x", "<cmd>!chmod +x %<CR>", { silent = true}) + +-- replace +vim.keymap.set("n", "<leader>s", [[:%s/\<<C-r><C-w>\>/<C-r><C-w><C-w>/gI<Left><Left><Left>]]) + +-- templates +vim.keymap.set("n", "<leader>rt", ":r " .. vim.fn.stdpath("config") .. "/templates/") + +-- 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) diff --git a/config/essentials/nvim/lua/tlast/set.lua b/config/essentials/nvim/lua/tlast/set.lua new file mode 100644 index 0000000..ab582bb --- /dev/null +++ b/config/essentials/nvim/lua/tlast/set.lua @@ -0,0 +1,36 @@ +vim.opt.clipboard = "unnamed" + +vim.opt.termguicolors = true + +vim.opt.number = true +vim.opt.relativenumber = true +vim.opt.showmatch = true +vim.opt.matchtime = 0 +vim.opt.showcmd = true +vim.opt.cursorline = true +vim.opt.ruler = true + +vim.opt.wildmenu = true +vim.opt.incsearch = true + +vim.opt.mouse = "" + +vim.opt.tabstop = 4 +vim.opt.shiftwidth = 4 +vim.opt.backspace = "indent,eol,start" + +vim.opt.signcolumn = "yes" +vim.opt.updatetime = 100 +vim.opt.laststatus = 2 +vim.opt.history = 200 +vim.opt.encoding = "utf-8" + +vim.opt.smartindent = true +vim.opt.scrolloff = 8 +vim.opt.textwidth = 74 + +vim.opt.ignorecase = true +vim.opt.smartcase = true + +vim.opt.swapfile = false +vim.opt.backup = false diff --git a/config/essentials/nvim/lua/tlast/zk.lua b/config/essentials/nvim/lua/tlast/zk.lua new file mode 100644 index 0000000..104c51c --- /dev/null +++ b/config/essentials/nvim/lua/tlast/zk.lua @@ -0,0 +1,75 @@ +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, + vaults = { + cs = { + home = home .. '/' .. 'cs', + template_new_note = home .. '/' .. 'templates/new_note.md', + }, + }, + media_previewer = "telescope-media-files", + follow_url_fallback = nil, +}) + +vim.keymap.set("n", "<leader>z", require('telekasten').panel) +vim.keymap.set("n", "<leader>zC", "<cmd>CalendarT") +vim.keymap.set("n", "<leader>zF", require('telekasten').find_friends) +vim.keymap.set("n", "<leader>zI", "<cmd>lua require('telekasten').insert_img_link({ i=true })<cr>") +vim.keymap.set("n", "<leader>zN", require('telekasten').new_templated_note) +vim.keymap.set("n", "<leader>zT", require('telekasten').goto_today) +vim.keymap.set("n", "<leader>zW", require('telekasten').goto_thisweek) +vim.keymap.set("n", "<leader>za", require('telekasten').show_tags) +vim.keymap.set("n", "<leader>zb", require('telekasten').show_backlinks) +vim.keymap.set("n", "<leader>zc", require('telekasten').show_calendar) +vim.keymap.set("n", "<leader>zd", require('telekasten').find_daily_notes) +vim.keymap.set("n", "<leader>zf", require('telekasten').find_notes) +vim.keymap.set("n", "<leader>zg", require('telekasten').search_notes) +vim.keymap.set("n", "<leader>zi", require('telekasten').paste_img_and_link) +vim.keymap.set("n", "<leader>zm", require('telekasten').browse_media) +vim.keymap.set("n", "<leader>zn", require('telekasten').new_note) +vim.keymap.set("n", "<leader>zp", require('telekasten').preview_img) +vim.keymap.set("n", "<leader>zr", require('telekasten').rename_note) +vim.keymap.set("n", "<leader>zs", require('telekasten').switch_vault) +vim.keymap.set("n", "<leader>zt", require('telekasten').toggle_todo) +vim.keymap.set("n", "<leader>zt","<cmd>lua require('telekasten').toggle_todo({ i=true })<cr>") +vim.keymap.set("n", "<leader>zw", require('telekasten').find_weekly_notes) +vim.keymap.set("n", "<leader>zy", require('telekasten').yank_notelink) +vim.keymap.set("n", "<leader>zz", require('telekasten').follow_link) +vim.keymap.set("n", "<leader>#", require('telekasten').show_tags) +vim.keymap.set("n", "<leader>[", "<cmd>lua require('telekasten').insert_link({ i=true })<cr>") diff --git a/config/essentials/nvim/templates/cpp.make b/config/essentials/nvim/templates/cpp.make new file mode 100644 index 0000000..474cd78 --- /dev/null +++ b/config/essentials/nvim/templates/cpp.make @@ -0,0 +1,4 @@ +FILE = + +$(FILE): $(FILE).cpp + c++ -Wall -Werror -ggdb $(FILE).cpp -o $(FILE) diff --git a/config/essentials/nvim/templates/main.cpp b/config/essentials/nvim/templates/main.cpp new file mode 100644 index 0000000..3d4f0fb --- /dev/null +++ b/config/essentials/nvim/templates/main.cpp @@ -0,0 +1,6 @@ +#include <iostream> +using namespace std; + +int main() { + return 0; +} |