From 2d651c5e595606a8669ad03602c97e12af27d43a Mon Sep 17 00:00:00 2001 From: Raoul Branten Date: Mon, 9 Oct 2023 14:18:01 +0200 Subject: [PATCH] init --- init.lua | 4 + lua/core/keymaps.lua | 13 ++ lua/core/options.lua | 41 +++++++ lua/core/plugin_config/deadcolumn.lua | 26 ++++ lua/core/plugin_config/gruvbox.lua | 2 + lua/core/plugin_config/init.lua | 10 ++ lua/core/plugin_config/lualine.lua | 14 +++ lua/core/plugin_config/nvim-tree.lua | 6 + lua/core/plugin_config/tagbar.lua | 0 lua/core/plugin_config/telescope.lua | 6 + lua/core/plugin_config/treesitter.lua | 10 ++ lua/core/plugin_config/vim-fugitive.lua | 0 lua/core/plugin_config/vim-gitgutter.lua | 0 lua/core/plugins.lua | 38 ++++++ plugin/packer_compiled.lua | 149 +++++++++++++++++++++++ 15 files changed, 319 insertions(+) create mode 100644 init.lua create mode 100644 lua/core/keymaps.lua create mode 100644 lua/core/options.lua create mode 100644 lua/core/plugin_config/deadcolumn.lua create mode 100644 lua/core/plugin_config/gruvbox.lua create mode 100644 lua/core/plugin_config/init.lua create mode 100644 lua/core/plugin_config/lualine.lua create mode 100644 lua/core/plugin_config/nvim-tree.lua create mode 100644 lua/core/plugin_config/tagbar.lua create mode 100644 lua/core/plugin_config/telescope.lua create mode 100644 lua/core/plugin_config/treesitter.lua create mode 100644 lua/core/plugin_config/vim-fugitive.lua create mode 100644 lua/core/plugin_config/vim-gitgutter.lua create mode 100644 lua/core/plugins.lua create mode 100644 plugin/packer_compiled.lua diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..3777049 --- /dev/null +++ b/init.lua @@ -0,0 +1,4 @@ +require("core.options") +require("core.keymaps") +require("core.plugins") +require("core.plugin_config") diff --git a/lua/core/keymaps.lua b/lua/core/keymaps.lua new file mode 100644 index 0000000..c5b8b1b --- /dev/null +++ b/lua/core/keymaps.lua @@ -0,0 +1,13 @@ +-- use space as leader key +vim.g.mapleader = ' ' +vim.g.maplocalleader = ' ' + +-- clear searchterm +vim.keymap.set('n', '', ':noh') + +-- Prevent using arrow keys or mouse +vim.keymap.set('n', '', ':echoe "Yo retard use h"') +vim.keymap.set('n', '', ':echoe "Yo retard use l"') +vim.keymap.set('n', '', ':echoe "Yo retard use k"') +vim.keymap.set('n', '', ':echoe "Yo retard use j"') +vim.opt.mouse = '' diff --git a/lua/core/options.lua b/lua/core/options.lua new file mode 100644 index 0000000..b340a5b --- /dev/null +++ b/lua/core/options.lua @@ -0,0 +1,41 @@ +-- from tutorial, needs research +vim.opt.backspace = '2' +vim.opt.showcmd = true +vim.opt.laststatus = 2 +vim.opt.autowrite = true + +-- general look and feel +vim.opt.cursorline = true +vim.opt.cursorcolumn = true +vim.opt.scrolloff = 5 +vim.opt.colorcolumn = "81" + +-- buffers +vim.opt.autoread = true +vim.opt.wildmode = 'longest,list' +vim.opt.ttyfast = true +vim.opt.pastetoggle = '' + +-- spacing +vim.opt.tabstop = 4 +vim.opt.shiftwidth = 4 +vim.opt.shiftround = true +vim.opt.expandtab = true + +-- formatting +vim.opt.autoindent = true +vim.opt.list = true +vim.opt.listchars = 'eol:¬,tab:>·,trail:~,extends:>,precedes:<,space:·' +-- ERROR vim.opt.smartindend = true +-- ERROR vim.opt.nowrap = true + +-- side column stuff +vim.opt.nu = true +vim.opt.signcolumn = 'yes' + +-- searching +vim.opt.ignorecase = true +vim.opt.smartcase = true +vim.opt.incsearch = true +vim.opt.hlsearch = true +vim.opt.wildignorecase = true diff --git a/lua/core/plugin_config/deadcolumn.lua b/lua/core/plugin_config/deadcolumn.lua new file mode 100644 index 0000000..e596ed7 --- /dev/null +++ b/lua/core/plugin_config/deadcolumn.lua @@ -0,0 +1,26 @@ +local opts = { + scope = 'line', + modes = { 'i', 'ic', 'ix', 'R', 'Rc', 'Rx', 'Rv', 'Rvc', 'Rvx' }, + blending = { + threshold = 0.75, + colorcode = '#000000', + hlgroup = { + 'Normal', + 'background', + }, + }, + warning = { + alpha = 0.4, + offset = 0, + colorcode = '#FF0000', + hlgroup = { + 'Error', + 'background', + }, + }, + extra = { + follow_tw = nil, + }, +} + +require('deadcolumn').setup(opts) -- Call the setup function diff --git a/lua/core/plugin_config/gruvbox.lua b/lua/core/plugin_config/gruvbox.lua new file mode 100644 index 0000000..c5f8d69 --- /dev/null +++ b/lua/core/plugin_config/gruvbox.lua @@ -0,0 +1,2 @@ +vim.o.termguicolors = true +vim.cmd [[ colorscheme gruvbox ]] diff --git a/lua/core/plugin_config/init.lua b/lua/core/plugin_config/init.lua new file mode 100644 index 0000000..6769369 --- /dev/null +++ b/lua/core/plugin_config/init.lua @@ -0,0 +1,10 @@ +require("core.plugin_config.gruvbox") +require("core.plugin_config.lualine") +require("core.plugin_config.nvim-tree") +require("core.plugin_config.treesitter") +require("core.plugin_config.telescope") +require("core.plugin_config.vim-fugitive") +require("core.plugin_config.tagbar") +require("core.plugin_config.vim-gitgutter") +require("core.plugin_config.deadcolumn") + diff --git a/lua/core/plugin_config/lualine.lua b/lua/core/plugin_config/lualine.lua new file mode 100644 index 0000000..18a82a2 --- /dev/null +++ b/lua/core/plugin_config/lualine.lua @@ -0,0 +1,14 @@ +require('lualine').setup { + options = { + icons_enabled = true, + theme = 'gruvbox', + }, + sections = { + lualine_a = { + { + 'filename', + path = 1, + } + } + } +} diff --git a/lua/core/plugin_config/nvim-tree.lua b/lua/core/plugin_config/nvim-tree.lua new file mode 100644 index 0000000..eeb97a0 --- /dev/null +++ b/lua/core/plugin_config/nvim-tree.lua @@ -0,0 +1,6 @@ +vim.g.loaded_netrw = 1 +vim.g.loaded_netrwPlugin = 1 + +require("nvim-tree").setup() + +vim.keymap.set('n', '', ':NvimTreeFindFileToggle') diff --git a/lua/core/plugin_config/tagbar.lua b/lua/core/plugin_config/tagbar.lua new file mode 100644 index 0000000..e69de29 diff --git a/lua/core/plugin_config/telescope.lua b/lua/core/plugin_config/telescope.lua new file mode 100644 index 0000000..1943769 --- /dev/null +++ b/lua/core/plugin_config/telescope.lua @@ -0,0 +1,6 @@ +local builtin = require('telescope.builtin') + +vim.keymap.set('n', 'ff', builtin.find_files, {}) +vim.keymap.set('n', 'fg', builtin.live_grep, {}) +vim.keymap.set('n', 'fb', builtin.buffers, {}) +vim.keymap.set('n', 'fh', builtin.help_tags, {}) diff --git a/lua/core/plugin_config/treesitter.lua b/lua/core/plugin_config/treesitter.lua new file mode 100644 index 0000000..745b3fe --- /dev/null +++ b/lua/core/plugin_config/treesitter.lua @@ -0,0 +1,10 @@ +require 'nvim-treesitter.configs'.setup { + -- A list of parser names, or "all" + ensure_installed = { "c", "lua", "vim", "php" }, + + sync_install = false, + auto_install = true, + highlight = { + enable = true, + }, +} diff --git a/lua/core/plugin_config/vim-fugitive.lua b/lua/core/plugin_config/vim-fugitive.lua new file mode 100644 index 0000000..e69de29 diff --git a/lua/core/plugin_config/vim-gitgutter.lua b/lua/core/plugin_config/vim-gitgutter.lua new file mode 100644 index 0000000..e69de29 diff --git a/lua/core/plugins.lua b/lua/core/plugins.lua new file mode 100644 index 0000000..485b2b7 --- /dev/null +++ b/lua/core/plugins.lua @@ -0,0 +1,38 @@ +local ensure_packer = function() + local fn = vim.fn + local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim' + if fn.empty(fn.glob(install_path)) > 0 then + fn.system({'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path}) + vim.cmd [[packadd packer.nvim]] + return true + end + return false +end + +local packer_bootstrap = ensure_packer() + +return require('packer').startup(function(use) + use 'wbthomason/packer.nvim' + + -- My plugins here + use 'ellisonleao/gruvbox.nvim' + use 'nvim-tree/nvim-tree.lua' + use 'nvim-tree/nvim-web-devicons' + use 'nvim-lualine/lualine.nvim' + use 'nvim-treesitter/nvim-treesitter' + use { + 'nvim-telescope/telescope.nvim', + tag = '0.1.3', + requires = { {'nvim-lua/plenary.nvim'} } + } + use 'tpope/vim-fugitive' + use 'majutsushi/tagbar' + use 'airblade/vim-gitgutter' + use 'Bekaboo/deadcolumn.nvim' + + -- Automatically set up your configuration after cloning packer.nvim + -- Put this at the end after all plugins + if packer_bootstrap then + require('packer').sync() + end +end) diff --git a/plugin/packer_compiled.lua b/plugin/packer_compiled.lua new file mode 100644 index 0000000..61926a2 --- /dev/null +++ b/plugin/packer_compiled.lua @@ -0,0 +1,149 @@ +-- Automatically generated packer.nvim plugin loader code + +if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then + vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"') + return +end + +vim.api.nvim_command('packadd packer.nvim') + +local no_errors, error_msg = pcall(function() + +_G._packer = _G._packer or {} +_G._packer.inside_compile = true + +local time +local profile_info +local should_profile = false +if should_profile then + local hrtime = vim.loop.hrtime + profile_info = {} + time = function(chunk, start) + if start then + profile_info[chunk] = hrtime() + else + profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6 + end + end +else + time = function(chunk, start) end +end + +local function save_profiles(threshold) + local sorted_times = {} + for chunk_name, time_taken in pairs(profile_info) do + sorted_times[#sorted_times + 1] = {chunk_name, time_taken} + end + table.sort(sorted_times, function(a, b) return a[2] > b[2] end) + local results = {} + for i, elem in ipairs(sorted_times) do + if not threshold or threshold and elem[2] > threshold then + results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms' + end + end + if threshold then + table.insert(results, '(Only showing plugins that took longer than ' .. threshold .. ' ms ' .. 'to load)') + end + + _G._packer.profile_output = results +end + +time([[Luarocks path setup]], true) +local package_path_str = "/home/raoul/.cache/nvim/packer_hererocks/2.1.1692716794/share/lua/5.1/?.lua;/home/raoul/.cache/nvim/packer_hererocks/2.1.1692716794/share/lua/5.1/?/init.lua;/home/raoul/.cache/nvim/packer_hererocks/2.1.1692716794/lib/luarocks/rocks-5.1/?.lua;/home/raoul/.cache/nvim/packer_hererocks/2.1.1692716794/lib/luarocks/rocks-5.1/?/init.lua" +local install_cpath_pattern = "/home/raoul/.cache/nvim/packer_hererocks/2.1.1692716794/lib/lua/5.1/?.so" +if not string.find(package.path, package_path_str, 1, true) then + package.path = package.path .. ';' .. package_path_str +end + +if not string.find(package.cpath, install_cpath_pattern, 1, true) then + package.cpath = package.cpath .. ';' .. install_cpath_pattern +end + +time([[Luarocks path setup]], false) +time([[try_loadstring definition]], true) +local function try_loadstring(s, component, name) + local success, result = pcall(loadstring(s), name, _G.packer_plugins[name]) + if not success then + vim.schedule(function() + vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {}) + end) + end + return result +end + +time([[try_loadstring definition]], false) +time([[Defining packer_plugins]], true) +_G.packer_plugins = { + ["gruvbox.nvim"] = { + loaded = true, + path = "/home/raoul/.local/share/nvim/site/pack/packer/start/gruvbox.nvim", + url = "https://github.com/ellisonleao/gruvbox.nvim" + }, + ["lualine.nvim"] = { + loaded = true, + path = "/home/raoul/.local/share/nvim/site/pack/packer/start/lualine.nvim", + url = "https://github.com/nvim-lualine/lualine.nvim" + }, + ["nvim-tree.lua"] = { + loaded = true, + path = "/home/raoul/.local/share/nvim/site/pack/packer/start/nvim-tree.lua", + url = "https://github.com/nvim-tree/nvim-tree.lua" + }, + ["nvim-treesitter"] = { + loaded = true, + path = "/home/raoul/.local/share/nvim/site/pack/packer/start/nvim-treesitter", + url = "https://github.com/nvim-treesitter/nvim-treesitter" + }, + ["nvim-web-devicons"] = { + loaded = true, + path = "/home/raoul/.local/share/nvim/site/pack/packer/start/nvim-web-devicons", + url = "https://github.com/nvim-tree/nvim-web-devicons" + }, + ["packer.nvim"] = { + loaded = true, + path = "/home/raoul/.local/share/nvim/site/pack/packer/start/packer.nvim", + url = "https://github.com/wbthomason/packer.nvim" + }, + ["plenary.nvim"] = { + loaded = true, + path = "/home/raoul/.local/share/nvim/site/pack/packer/start/plenary.nvim", + url = "https://github.com/nvim-lua/plenary.nvim" + }, + tagbar = { + loaded = true, + path = "/home/raoul/.local/share/nvim/site/pack/packer/start/tagbar", + url = "https://github.com/majutsushi/tagbar" + }, + ["telescope.nvim"] = { + loaded = true, + path = "/home/raoul/.local/share/nvim/site/pack/packer/start/telescope.nvim", + url = "https://github.com/nvim-telescope/telescope.nvim" + }, + ["vim-fugitive"] = { + loaded = true, + path = "/home/raoul/.local/share/nvim/site/pack/packer/start/vim-fugitive", + url = "https://github.com/tpope/vim-fugitive" + }, + ["vim-gitgutter"] = { + loaded = true, + path = "/home/raoul/.local/share/nvim/site/pack/packer/start/vim-gitgutter", + url = "https://github.com/airblade/vim-gitgutter" + } +} + +time([[Defining packer_plugins]], false) + +_G._packer.inside_compile = false +if _G._packer.needs_bufread == true then + vim.cmd("doautocmd BufRead") +end +_G._packer.needs_bufread = false + +if should_profile then save_profiles() end + +end) + +if not no_errors then + error_msg = error_msg:gsub('"', '\\"') + vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None') +end