changing file structure and adding harpoon
This commit is contained in:
		
							parent
							
								
									d09e5e3bc6
								
							
						
					
					
						commit
						8e1d6b1aae
					
				
							
								
								
									
										102
									
								
								config/init.lua
									
									
									
									
									
								
							
							
						
						
									
										102
									
								
								config/init.lua
									
									
									
									
									
								
							@ -1,8 +1,6 @@
 | 
			
		||||
require('keymap')
 | 
			
		||||
require('plugins')
 | 
			
		||||
require('calcurse')
 | 
			
		||||
require('i3conf')
 | 
			
		||||
require('go')
 | 
			
		||||
require('autobuf')
 | 
			
		||||
 | 
			
		||||
-- prevent cursor override
 | 
			
		||||
vim.cmd('set guicursor=')
 | 
			
		||||
@ -12,8 +10,6 @@ vim.cmd('set ts=4 sts=4 sw=4 expandtab')
 | 
			
		||||
 | 
			
		||||
-- clipboard
 | 
			
		||||
vim.cmd('set clipboard+=unnamedplus')
 | 
			
		||||
vim.keymap.set('n', '<leader>Y', '"+y')
 | 
			
		||||
vim.keymap.set('n', '<leader>P', '"+p')
 | 
			
		||||
 | 
			
		||||
-- hybrid numbering
 | 
			
		||||
vim.opt.relativenumber = true
 | 
			
		||||
@ -52,86 +48,20 @@ vim.cmd([[
 | 
			
		||||
                    \ 'syntax': 'markdown', 'ext':'.md'}]
 | 
			
		||||
]])
 | 
			
		||||
 | 
			
		||||
-- language server setup
 | 
			
		||||
local lspconfig = require('lspconfig')
 | 
			
		||||
-- go file settings
 | 
			
		||||
vim.g.go_hightlight_types = 1
 | 
			
		||||
vim.g.go_hightlight_fields = 1
 | 
			
		||||
vim.g.go_hightlight_functions = 1
 | 
			
		||||
vim.g.go_hightlight_function_calls = 1
 | 
			
		||||
vim.g.go_hightlight_operators = 1
 | 
			
		||||
vim.g.go_hightlight_extra_types = 1
 | 
			
		||||
 | 
			
		||||
-- Go
 | 
			
		||||
lspconfig.gopls.setup{
 | 
			
		||||
    cmd = {"gopls", "serve"},
 | 
			
		||||
    filetypes = {"go", "gomod"},
 | 
			
		||||
    settings = {
 | 
			
		||||
        gopls = {
 | 
			
		||||
            analyses = {
 | 
			
		||||
                unusedparams = true,
 | 
			
		||||
            },
 | 
			
		||||
            staticcheck = true,
 | 
			
		||||
        },
 | 
			
		||||
    },
 | 
			
		||||
}
 | 
			
		||||
-- airline settings
 | 
			
		||||
if vim.g.airline_symbols == nil then
 | 
			
		||||
    vim.g.airline_symbols = vim.empty_dict()
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- C/C++
 | 
			
		||||
lspconfig.clangd.setup{}
 | 
			
		||||
 | 
			
		||||
-- Lua
 | 
			
		||||
lspconfig.lua_ls.setup{
 | 
			
		||||
    settings = {
 | 
			
		||||
        Lua = {
 | 
			
		||||
            diagnostics = {globals = {'vim', 'opts'}},
 | 
			
		||||
        },
 | 
			
		||||
        telemetry = {
 | 
			
		||||
            enable = false,
 | 
			
		||||
        },
 | 
			
		||||
    },
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
-- Rust
 | 
			
		||||
lspconfig.rust_analyzer.setup{}
 | 
			
		||||
 | 
			
		||||
-- Python
 | 
			
		||||
lspconfig.pylsp.setup{}
 | 
			
		||||
 | 
			
		||||
-- TypeScript
 | 
			
		||||
lspconfig.tsserver.setup{}
 | 
			
		||||
 | 
			
		||||
-- Fix virtual text going off screen
 | 
			
		||||
vim.diagnostic.config({
 | 
			
		||||
    virtual_text = false,
 | 
			
		||||
    signs = true,
 | 
			
		||||
    underline = true,
 | 
			
		||||
    update_in_insert = false,
 | 
			
		||||
    severity_sort = false,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
vim.api.nvim_create_autocmd('LspAttach', {
 | 
			
		||||
    callback = function(ev)
 | 
			
		||||
        -- custom colors
 | 
			
		||||
        vim.cmd('hi DiagnosticUnderlineError cterm=undercurl guisp=Red')
 | 
			
		||||
        -- key mappings
 | 
			
		||||
        local opts = { buffer = ev.buf,}
 | 
			
		||||
        -- error viewing
 | 
			
		||||
        vim.keymap.set('n', '<leader>e', vim.diagnostic.open_float, opts)
 | 
			
		||||
        vim.keymap.set('n', '<leader>[d', vim.diagnostic.goto_prev, opts)
 | 
			
		||||
        vim.keymap.set('n', '<leader>]d', vim.diagnostic.goto_next, opts)
 | 
			
		||||
        -- def viewing/rename
 | 
			
		||||
        vim.keymap.set('n', '<leader>gD', vim.lsp.buf.declaration, opts)
 | 
			
		||||
        vim.keymap.set('n', '<leader>gd', vim.lsp.buf.definition, opts)
 | 
			
		||||
        vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, opts)
 | 
			
		||||
        vim.keymap.set('n', '<leader>H', vim.lsp.buf.hover, opts)
 | 
			
		||||
        -- auto hover for error viewing
 | 
			
		||||
        vim.api.nvim_create_autocmd("CursorHold", {
 | 
			
		||||
            callback = function()
 | 
			
		||||
                opts = {
 | 
			
		||||
                    buffer = ev.buf,
 | 
			
		||||
                    focusable = false,
 | 
			
		||||
                    border = 'rounded',
 | 
			
		||||
                    source = 'always',
 | 
			
		||||
                    prefix = ' ',
 | 
			
		||||
                    scope = 'cursor',
 | 
			
		||||
                    close_events = { "BufLeave","CursorMoved","InsertEnter","FocusLost" },
 | 
			
		||||
                }
 | 
			
		||||
                vim.diagnostic.open_float(nil, opts)
 | 
			
		||||
            end
 | 
			
		||||
        })
 | 
			
		||||
    end,
 | 
			
		||||
})
 | 
			
		||||
vim.g.airline_powerline_fonts = 1
 | 
			
		||||
vim.g.airline_symbols.linenr = ''
 | 
			
		||||
vim.g.airline_symbols.maxlinenr = ''
 | 
			
		||||
vim.g.airline_symbols.dirty = ''
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										12
									
								
								config/lua/autobuf.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								config/lua/autobuf.lua
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,12 @@
 | 
			
		||||
--  sets autocommands for bufenters etc
 | 
			
		||||
 | 
			
		||||
-- recognize i3 files as such
 | 
			
		||||
vim.api.nvim_create_autocmd({"BufRead","BufNewFile"}, {
 | 
			
		||||
    pattern = {"*/i3/*.conf"},
 | 
			
		||||
    command = "set filetype=i3config",
 | 
			
		||||
})
 | 
			
		||||
-- calcurse -> markdown
 | 
			
		||||
vim.api.nvim_create_autocmd({"BufRead","BufNewFile"}, {
 | 
			
		||||
    pattern = {"/tmp/calcurse*","~/.local/share/calcurse/notes/*"},
 | 
			
		||||
    command = "set filetype=markdown",
 | 
			
		||||
})
 | 
			
		||||
@ -1,7 +0,0 @@
 | 
			
		||||
-- calcurse -> markdown
 | 
			
		||||
vim.api.nvim_create_autocmd({"BufRead","BufNewFile"}, {
 | 
			
		||||
    pattern = {"/tmp/calcurse*","~/.local/share/calcurse/notes/*"},
 | 
			
		||||
    command = "set filetype=markdown",
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,11 +0,0 @@
 | 
			
		||||
require('telescope').setup({
 | 
			
		||||
    defaults = {
 | 
			
		||||
        layout_config = {
 | 
			
		||||
            horizontal = { width = 0.5 }
 | 
			
		||||
        },
 | 
			
		||||
    },
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
local builtin = require('telescope.builtin')
 | 
			
		||||
vim.keymap.set('n','<leader>f', builtin.find_files, {})
 | 
			
		||||
vim.keymap.set('n','<leader>s', builtin.spell_suggest, {})
 | 
			
		||||
@ -1,6 +0,0 @@
 | 
			
		||||
vim.g.go_hightlight_types = 1
 | 
			
		||||
vim.g.go_hightlight_fields = 1
 | 
			
		||||
vim.g.go_hightlight_functions = 1
 | 
			
		||||
vim.g.go_hightlight_function_calls = 1
 | 
			
		||||
vim.g.go_hightlight_operators = 1
 | 
			
		||||
vim.g.go_hightlight_extra_types = 1
 | 
			
		||||
@ -1,6 +0,0 @@
 | 
			
		||||
-- recognize i3 config from dotfiles
 | 
			
		||||
--
 | 
			
		||||
vim.api.nvim_create_autocmd({"BufRead","BufNewFile"}, {
 | 
			
		||||
    pattern = {"*/i3/*.conf"},
 | 
			
		||||
    command = "set filetype=i3config",
 | 
			
		||||
})
 | 
			
		||||
@ -1,5 +1,3 @@
 | 
			
		||||
require("transparent")
 | 
			
		||||
 | 
			
		||||
vim.g.mapleader = " "
 | 
			
		||||
 | 
			
		||||
vim.keymap.set("n", "<leader>b", ":lua ToggleTransparent()<CR>")
 | 
			
		||||
@ -10,15 +8,6 @@ vim.keymap.set("n", "<leader>t", ":NvimTreeToggle<CR>")
 | 
			
		||||
 | 
			
		||||
vim.keymap.set("n", "<leader>a", ":lua SpellToggle()<CR>")
 | 
			
		||||
 | 
			
		||||
-- toggle spell check
 | 
			
		||||
function SpellToggle()
 | 
			
		||||
    if vim.o.spell == nil or vim.o.spell then
 | 
			
		||||
        vim.o.spell = false
 | 
			
		||||
    else
 | 
			
		||||
        vim.o.spell = true
 | 
			
		||||
    end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- markdown preview
 | 
			
		||||
 | 
			
		||||
vim.keymap.set("n", "<leader>p", ":MarkdownPreviewToggle<CR>")
 | 
			
		||||
@ -36,3 +25,28 @@ vim.g.mkdp_browserfunc = 'OpenMarkdownPreview'
 | 
			
		||||
vim.keymap.set("n", "<leader>ga", ":Git add .<CR>")
 | 
			
		||||
vim.keymap.set("n", "<leader>gm", ":Git commit<CR>")
 | 
			
		||||
 | 
			
		||||
-- fuzzy finder keybindings
 | 
			
		||||
local telescope = require('telescope.builtin')
 | 
			
		||||
vim.keymap.set('n','<leader>f', telescope.find_files, {})
 | 
			
		||||
vim.keymap.set('n','<leader>s', telescope.spell_suggest, {})
 | 
			
		||||
 | 
			
		||||
-- global copy/paste
 | 
			
		||||
vim.keymap.set('n', '<leader>yg', '"+y')
 | 
			
		||||
vim.keymap.set('n', '<leader>pg', '"+p')
 | 
			
		||||
 | 
			
		||||
-- toggle dotfiles visibility
 | 
			
		||||
vim.keymap.set("n", "<leader>d", ":lua require('nvim-tree.api').tree.toggle_hidden_filter()<CR>")
 | 
			
		||||
 | 
			
		||||
-- harpoon bindings
 | 
			
		||||
local harpoon = require('harpoon.ui')
 | 
			
		||||
 | 
			
		||||
vim.keymap.set("n", "<leader>hh", ":Telescope harpoon marks")
 | 
			
		||||
vim.keymap.set("n", "<leader>ha", harpoon.add_file, {})
 | 
			
		||||
vim.keymap.set("n", "<leader>hn", harpoon.nav_next, {})
 | 
			
		||||
vim.keymap.set("n", "<leader>hp", harpoon.nav_prev, {})
 | 
			
		||||
-- jumping to specific files
 | 
			
		||||
vim.keymap.set("n", "<leader>h1", harpoon.nav_file, {1})
 | 
			
		||||
vim.keymap.set("n", "<leader>h2", harpoon.nav_file, {2})
 | 
			
		||||
vim.keymap.set("n", "<leader>h3", harpoon.nav_file, {3})
 | 
			
		||||
vim.keymap.set("n", "<leader>h4", harpoon.nav_file, {4})
 | 
			
		||||
vim.keymap.set("n", "<leader>h5", harpoon.nav_file, {5})
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										83
									
								
								config/lua/lsp.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								config/lua/lsp.lua
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,83 @@
 | 
			
		||||
-- language server setup
 | 
			
		||||
local lspconfig = require('lspconfig')
 | 
			
		||||
 | 
			
		||||
-- Go
 | 
			
		||||
lspconfig.gopls.setup{
 | 
			
		||||
    cmd = {"gopls", "serve"},
 | 
			
		||||
    filetypes = {"go", "gomod"},
 | 
			
		||||
    settings = {
 | 
			
		||||
        gopls = {
 | 
			
		||||
            analyses = {
 | 
			
		||||
                unusedparams = true,
 | 
			
		||||
            },
 | 
			
		||||
            staticcheck = true,
 | 
			
		||||
        },
 | 
			
		||||
    },
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
-- C/C++
 | 
			
		||||
lspconfig.clangd.setup{}
 | 
			
		||||
 | 
			
		||||
-- Lua
 | 
			
		||||
lspconfig.lua_ls.setup{
 | 
			
		||||
    settings = {
 | 
			
		||||
        Lua = {
 | 
			
		||||
            diagnostics = {globals = {'vim', 'opts'}},
 | 
			
		||||
        },
 | 
			
		||||
        telemetry = {
 | 
			
		||||
            enable = false,
 | 
			
		||||
        },
 | 
			
		||||
    },
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
-- Rust
 | 
			
		||||
lspconfig.rust_analyzer.setup{}
 | 
			
		||||
 | 
			
		||||
-- Python
 | 
			
		||||
lspconfig.pylsp.setup{}
 | 
			
		||||
 | 
			
		||||
-- TypeScript
 | 
			
		||||
lspconfig.tsserver.setup{}
 | 
			
		||||
 | 
			
		||||
-- Fix virtual text going off screen
 | 
			
		||||
vim.diagnostic.config({
 | 
			
		||||
    virtual_text = false,
 | 
			
		||||
    signs = true,
 | 
			
		||||
    underline = true,
 | 
			
		||||
    update_in_insert = false,
 | 
			
		||||
    severity_sort = false,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
vim.api.nvim_create_autocmd('LspAttach', {
 | 
			
		||||
    callback = function(ev)
 | 
			
		||||
        -- custom colors
 | 
			
		||||
        --vim.cmd('hi DiagnosticUnderlineError cterm=undercurl guisp=Red')
 | 
			
		||||
        -- key mappings
 | 
			
		||||
        local opts = { buffer = ev.buf,}
 | 
			
		||||
        -- error viewing
 | 
			
		||||
        vim.keymap.set('n', '<leader>e', vim.diagnostic.open_float, opts)
 | 
			
		||||
        vim.keymap.set('n', '<leader>[d', vim.diagnostic.goto_prev, opts)
 | 
			
		||||
        vim.keymap.set('n', '<leader>]d', vim.diagnostic.goto_next, opts)
 | 
			
		||||
        -- def viewing/rename
 | 
			
		||||
        vim.keymap.set('n', '<leader>gD', vim.lsp.buf.declaration, opts)
 | 
			
		||||
        vim.keymap.set('n', '<leader>gd', vim.lsp.buf.definition, opts)
 | 
			
		||||
        vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, opts)
 | 
			
		||||
        vim.keymap.set('n', '<leader>H', vim.lsp.buf.hover, opts)
 | 
			
		||||
        -- auto hover for error viewing
 | 
			
		||||
        vim.api.nvim_create_autocmd("CursorHold", {
 | 
			
		||||
            callback = function()
 | 
			
		||||
                opts = {
 | 
			
		||||
                    buffer = ev.buf,
 | 
			
		||||
                    focusable = false,
 | 
			
		||||
                    border = 'rounded',
 | 
			
		||||
                    source = 'always',
 | 
			
		||||
                    prefix = ' ',
 | 
			
		||||
                    scope = 'cursor',
 | 
			
		||||
                    close_events = { "BufLeave","CursorMoved","InsertEnter","FocusLost" },
 | 
			
		||||
                }
 | 
			
		||||
                vim.diagnostic.open_float(nil, opts)
 | 
			
		||||
            end
 | 
			
		||||
        })
 | 
			
		||||
    end,
 | 
			
		||||
})
 | 
			
		||||
@ -1,13 +1,52 @@
 | 
			
		||||
require('tree')
 | 
			
		||||
require('fuzzy')
 | 
			
		||||
require('lsp')
 | 
			
		||||
require('transparent')
 | 
			
		||||
require('spellcheck')
 | 
			
		||||
 | 
			
		||||
-- airline settings
 | 
			
		||||
if vim.g.airline_symbols == nil then
 | 
			
		||||
    vim.g.airline_symbols = vim.empty_dict()
 | 
			
		||||
-- nvim tree setup
 | 
			
		||||
require('nvim-tree').setup({
 | 
			
		||||
    open_on_tab = false,
 | 
			
		||||
    filters = {
 | 
			
		||||
        dotfiles = true,
 | 
			
		||||
    },
 | 
			
		||||
    actions = {
 | 
			
		||||
        open_file = {
 | 
			
		||||
            quit_on_open = true,
 | 
			
		||||
        },
 | 
			
		||||
    },
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
showHiddenFiles = false
 | 
			
		||||
 | 
			
		||||
local function open_nvim_tree(data)
 | 
			
		||||
 | 
			
		||||
    -- buffer is a directory
 | 
			
		||||
    local directory = vim.fn.isdirectory(data.file) == 1
 | 
			
		||||
 | 
			
		||||
    local empty_file = data.file == ""
 | 
			
		||||
 | 
			
		||||
    if not directory and not empty_file then
 | 
			
		||||
        return
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    if directory then
 | 
			
		||||
        vim.cmd.cd(data.file)
 | 
			
		||||
    end
 | 
			
		||||
    vim.cmd.enew()
 | 
			
		||||
    vim.cmd.bw(data.buf)
 | 
			
		||||
    -- change to directory and open
 | 
			
		||||
    require("nvim-tree.api").tree.open()
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
vim.g.airline_powerline_fonts = 1
 | 
			
		||||
vim.g.airline_symbols.linenr = ''
 | 
			
		||||
vim.g.airline_symbols.maxlinenr = ''
 | 
			
		||||
vim.g.airline_symbols.dirty = ''
 | 
			
		||||
-- nvim-tree open at startup
 | 
			
		||||
vim.api.nvim_create_autocmd({ "VimEnter" }, { callback = open_nvim_tree, })
 | 
			
		||||
 | 
			
		||||
-- fuzzy finder setup
 | 
			
		||||
require('telescope').setup({
 | 
			
		||||
    defaults = {
 | 
			
		||||
        layout_config = {
 | 
			
		||||
            horizontal = { width = 0.5 }
 | 
			
		||||
        },
 | 
			
		||||
    },
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
require.('telescope).load_extension('harpoon')
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										9
									
								
								config/lua/spellcheck.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								config/lua/spellcheck.lua
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,9 @@
 | 
			
		||||
-- simple spell check toggle
 | 
			
		||||
 | 
			
		||||
function SpellToggle()
 | 
			
		||||
    if vim.o.spell == nil or vim.o.spell then
 | 
			
		||||
        vim.o.spell = false
 | 
			
		||||
    else
 | 
			
		||||
        vim.o.spell = true
 | 
			
		||||
    end
 | 
			
		||||
end
 | 
			
		||||
@ -1,9 +1,10 @@
 | 
			
		||||
-- allows for toggling of background
 | 
			
		||||
function ToggleTransparent()
 | 
			
		||||
    Transparent = not Transparent
 | 
			
		||||
    if Transparent then
 | 
			
		||||
        vim.cmd("hi Normal ctermbg=NONE")
 | 
			
		||||
    else
 | 
			
		||||
        vim.cmd("set background=dark")
 | 
			
		||||
        vim.cmd("syntax enable")
 | 
			
		||||
        -- 234 is hybrid dark bg color
 | 
			
		||||
        vim.cmd("hi Normal ctermbg=234")
 | 
			
		||||
    end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
@ -1,40 +0,0 @@
 | 
			
		||||
require('nvim-tree').setup({
 | 
			
		||||
    open_on_tab = false,
 | 
			
		||||
    filters = {
 | 
			
		||||
        dotfiles = true,
 | 
			
		||||
    },
 | 
			
		||||
    actions = {
 | 
			
		||||
        open_file = {
 | 
			
		||||
            quit_on_open = true,
 | 
			
		||||
        },
 | 
			
		||||
    },
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
showHiddenFiles = false
 | 
			
		||||
 | 
			
		||||
local function open_nvim_tree(data)
 | 
			
		||||
 | 
			
		||||
    -- buffer is a directory
 | 
			
		||||
    local directory = vim.fn.isdirectory(data.file) == 1
 | 
			
		||||
 | 
			
		||||
    local empty_file = data.file == ""
 | 
			
		||||
 | 
			
		||||
    if not directory and not empty_file then
 | 
			
		||||
        return
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    if directory then
 | 
			
		||||
        vim.cmd.cd(data.file)
 | 
			
		||||
    end
 | 
			
		||||
    vim.cmd.enew()
 | 
			
		||||
    vim.cmd.bw(data.buf)
 | 
			
		||||
    -- change to directory and open
 | 
			
		||||
    require("nvim-tree.api").tree.open()
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- toggle dotfiles visibility
 | 
			
		||||
vim.keymap.set("n", "<leader>d", ":lua require('nvim-tree.api').tree.toggle_hidden_filter()<CR>")
 | 
			
		||||
 | 
			
		||||
-- nvim-tree open at startup
 | 
			
		||||
vim.api.nvim_create_autocmd({ "VimEnter" }, { callback = open_nvim_tree, })
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user