First push of own init
This commit is contained in:
parent
a8f539562a
commit
78d0d9947f
232
init.lua
232
init.lua
|
@ -91,7 +91,7 @@ vim.g.mapleader = ' '
|
|||
vim.g.maplocalleader = ' '
|
||||
|
||||
-- Set to true if you have a Nerd Font installed and selected in the terminal
|
||||
vim.g.have_nerd_font = false
|
||||
vim.g.have_nerd_font = true
|
||||
|
||||
-- [[ Setting options ]]
|
||||
-- See `:help vim.opt`
|
||||
|
@ -102,7 +102,7 @@ vim.g.have_nerd_font = false
|
|||
vim.opt.number = true
|
||||
-- You can also add relative line numbers, to help with jumping.
|
||||
-- Experiment for yourself to see if you like it!
|
||||
-- vim.opt.relativenumber = true
|
||||
vim.opt.relativenumber = true
|
||||
|
||||
-- Enable mouse mode, can be useful for resizing splits for example!
|
||||
vim.opt.mouse = 'a'
|
||||
|
@ -135,6 +135,7 @@ vim.opt.signcolumn = 'yes'
|
|||
vim.opt.updatetime = 250
|
||||
|
||||
-- Decrease mapped sequence wait time
|
||||
-- Displays which-key popup sooner
|
||||
vim.opt.timeoutlen = 300
|
||||
|
||||
-- Configure how new splits should be opened
|
||||
|
@ -154,11 +155,12 @@ vim.opt.inccommand = 'split'
|
|||
vim.opt.cursorline = true
|
||||
|
||||
-- Minimal number of screen lines to keep above and below the cursor.
|
||||
vim.opt.scrolloff = 10
|
||||
vim.opt.scrolloff = 5
|
||||
|
||||
-- [[ Basic Keymaps ]]
|
||||
-- See `:help vim.keymap.set()`
|
||||
|
||||
vim.cmd [[command! OpenInit execute 'edit C:/Users/branm/AppData/Local/nvim/init.lua']]
|
||||
-- Clear highlights on search when pressing <Esc> in normal mode
|
||||
-- See `:help hlsearch`
|
||||
vim.keymap.set('n', '<Esc>', '<cmd>nohlsearch<CR>')
|
||||
|
@ -174,6 +176,9 @@ vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist, { desc = 'Open diagn
|
|||
-- or just use <C-\><C-n> to exit terminal mode
|
||||
vim.keymap.set('t', '<Esc><Esc>', '<C-\\><C-n>', { desc = 'Exit terminal mode' })
|
||||
|
||||
--vim.keymap.set('n', '<C-e>', ':Neotree toggle<enter>', { desc = 'Opens a Neotree from the User directory' })
|
||||
--vim.keymap.set('n', '<C-b>', ':Neotree source=buffers<enter>', { desc = 'Opens a Neotree from the User directory' })
|
||||
|
||||
-- TIP: Disable arrow keys in normal mode
|
||||
-- vim.keymap.set('n', '<left>', '<cmd>echo "Use h to move!!"<CR>')
|
||||
-- vim.keymap.set('n', '<right>', '<cmd>echo "Use l to move!!"<CR>')
|
||||
|
@ -189,6 +194,13 @@ vim.keymap.set('n', '<C-l>', '<C-w><C-l>', { desc = 'Move focus to the right win
|
|||
vim.keymap.set('n', '<C-j>', '<C-w><C-j>', { desc = 'Move focus to the lower window' })
|
||||
vim.keymap.set('n', '<C-k>', '<C-w><C-k>', { desc = 'Move focus to the upper window' })
|
||||
|
||||
vim.keymap.set('n', '<C-_>', function()
|
||||
require('Comment.api').toggle.linewise.current()
|
||||
end, { noremap = true, silent = true })
|
||||
|
||||
vim.keymap.set('v', '<C-_>', function()
|
||||
require('Comment.api').toggle.linewise(vim.fn.visualmode())
|
||||
end, { noremap = true, silent = true })
|
||||
-- [[ Basic Autocommands ]]
|
||||
-- See `:help lua-guide-autocommands`
|
||||
|
||||
|
@ -214,7 +226,12 @@ if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
|||
end
|
||||
end ---@diagnostic disable-next-line: undefined-field
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
vim.keymap.set('n', '<leader>fml', '<cmd>CellularAutomaton make_it_rain<CR>')
|
||||
vim.keymap.set('n', '<leader>fmg', '<cmd>CellularAutomaton game_of_life<CR>')
|
||||
vim.keymap.set('n', '<leader>fd', '<cmd>Dealwithit<CR>')
|
||||
|
||||
vim.keymap.set('n', '<leader>mc', '<cmd>w<CR><cmd>!g++ ' .. vim.fn.expand '%:t' .. ' -o main.exe<CR>')
|
||||
vim.keymap.set('n', '<leader>mr', '<cmd>!main.exe<CR>')
|
||||
-- [[ Configure and install plugins ]]
|
||||
--
|
||||
-- To check the current status of your plugins, run
|
||||
|
@ -225,22 +242,117 @@ vim.opt.rtp:prepend(lazypath)
|
|||
-- To update plugins you can run
|
||||
-- :Lazy update
|
||||
--
|
||||
-- NOTE: Here is where you install your plugins.
|
||||
-- NOTE: here is where you install your plugins.
|
||||
|
||||
require('lazy').setup({
|
||||
-- NOTE: Plugins can be added with a link (or for a github repo: 'owner/repo' link).
|
||||
'tpope/vim-sleuth', -- Detect tabstop and shiftwidth automatically
|
||||
{
|
||||
'tpope/vim-sleuth',
|
||||
}, -- Detect tabstop and shiftwidth automatically},
|
||||
{
|
||||
{ 'ap/vim-css-color' },
|
||||
},
|
||||
-- extra colour schemes
|
||||
|
||||
{
|
||||
'rktjmp/lush.nvim', -- honestly cannot remember
|
||||
lazy = false,
|
||||
},
|
||||
-- Load jellybeans-nvim
|
||||
{
|
||||
'metalelf0/jellybeans-nvim', -- the best colorscheme
|
||||
requires = { 'rktjmp/lush.nvim' },
|
||||
},
|
||||
|
||||
-- {
|
||||
-- 'neovim/nvim-lspconfig',
|
||||
-- config = function()
|
||||
-- require('lspconfig').clangd.setup {
|
||||
-- cmd = { 'C:/msys64/mingw64/bin/clangd.exe' },
|
||||
-- filetypes = { 'cpp', 'c' },
|
||||
-- root_dir = require('lspconfig/util').root_pattern('compile_commands.json', 'compile_flags.txt', '.git'),
|
||||
-- }
|
||||
-- local lspconfig = require 'lspconfig'
|
||||
-- lspconfig.ruby_lsp.setup {}
|
||||
-- end,
|
||||
-- },
|
||||
|
||||
{
|
||||
'neovim/nvim-lspconfig', -- LSPs
|
||||
config = function()
|
||||
local lspconfig = require 'lspconfig'
|
||||
lspconfig.solargraph.setup {
|
||||
settings = {
|
||||
solargraph = {
|
||||
diagnostics = true,
|
||||
completion = true,
|
||||
},
|
||||
},
|
||||
}
|
||||
lspconfig.html.setup {
|
||||
capabilities = {
|
||||
textDocument = {
|
||||
completion = {
|
||||
snippetSupport = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
end,
|
||||
},
|
||||
|
||||
{
|
||||
'Shopify/ruby-lsp', -- ruby autocomplete
|
||||
config = function()
|
||||
local lspconfig = require 'lspconfig'
|
||||
lspconfig.ruby_lsp.setup {}
|
||||
end,
|
||||
},
|
||||
{
|
||||
'numToStr/Comment.nvim',
|
||||
config = function()
|
||||
require('Comment').setup()
|
||||
end,
|
||||
},
|
||||
--{
|
||||
-- 'tpope/vim-rails', --ruby autocomplete
|
||||
--},
|
||||
{
|
||||
'mattn/emmet-vim',
|
||||
},
|
||||
{
|
||||
'Eandrju/cellular-automaton.nvim', --CellularAutomaton
|
||||
},
|
||||
{
|
||||
'AndrewRadev/dealwithit.vim', -- dealwithit
|
||||
},
|
||||
{
|
||||
'tamton-aquib/duck.nvim',
|
||||
config = function()
|
||||
vim.keymap.set('n', '<leader>dd', function()
|
||||
require('duck').hatch()
|
||||
end, {})
|
||||
vim.keymap.set('n', '<leader>dk', function()
|
||||
require('duck').cook()
|
||||
end, {})
|
||||
vim.keymap.set('n', '<leader>da', function()
|
||||
require('duck').cook_all()
|
||||
end, {})
|
||||
end,
|
||||
},
|
||||
{
|
||||
'skywind3000/vim-keysound',
|
||||
},
|
||||
-- NOTE: Plugins can also be added by using a table,
|
||||
-- with the first argument being the link and the following
|
||||
-- keys can be used to configure plugin behavior/loading/etc.
|
||||
--
|
||||
-- Use `opts = {}` to force a plugin to be loaded.
|
||||
--
|
||||
|
||||
-- Here is a more advanced example where we pass configuration
|
||||
-- options to `gitsigns.nvim`. This is equivalent to the following Lua:
|
||||
-- require('gitsigns').setup({ ... })
|
||||
--
|
||||
|
||||
-- See `:help gitsigns` to understand what the configuration keys do
|
||||
{ -- Adds git related signs to the gutter, as well as utilities for managing changes
|
||||
'lewis6991/gitsigns.nvim',
|
||||
|
@ -266,21 +378,19 @@ require('lazy').setup({
|
|||
-- which loads which-key before all the UI elements are loaded. Events can be
|
||||
-- normal autocommands events (`:help autocmd-events`).
|
||||
--
|
||||
-- Then, because we use the `opts` key (recommended), the configuration runs
|
||||
-- after the plugin has been loaded as `require(MODULE).setup(opts)`.
|
||||
-- Then, because we use the `config` key, the configuration only runs
|
||||
-- after the plugin has been loaded:
|
||||
-- config = function() ... end
|
||||
|
||||
{ -- Useful plugin to show you pending keybinds.
|
||||
'folke/which-key.nvim',
|
||||
event = 'VimEnter', -- Sets the loading event to 'VimEnter'
|
||||
opts = {
|
||||
-- delay between pressing a key and opening which-key (milliseconds)
|
||||
-- this setting is independent of vim.opt.timeoutlen
|
||||
delay = 0,
|
||||
icons = {
|
||||
-- set icon mappings to true if you have a Nerd Font
|
||||
mappings = vim.g.have_nerd_font,
|
||||
-- If you are using a Nerd Font: set icons.keys to an empty table which will use the
|
||||
-- default which-key.nvim defined Nerd Font icons, otherwise define a string table
|
||||
-- default whick-key.nvim defined Nerd Font icons, otherwise define a string table
|
||||
keys = vim.g.have_nerd_font and {} or {
|
||||
Up = '<Up> ',
|
||||
Down = '<Down> ',
|
||||
|
@ -376,14 +486,13 @@ require('lazy').setup({
|
|||
-- This opens a window that shows you all of the keymaps for the current
|
||||
-- Telescope picker. This is really useful to discover what Telescope can
|
||||
-- do as well as how to actually do it!
|
||||
|
||||
-- [[ Configure Telescope ]]
|
||||
-- See `:help telescope` and `:help telescope.setup()`
|
||||
require('telescope').setup {
|
||||
-- You can put your default mappings / updates / etc. in here
|
||||
-- You can put your default mappings / updates / etc. in here
|
||||
-- All the info you're looking for is in `:help telescope.setup()`
|
||||
--
|
||||
-- defaults = {
|
||||
-- defaults = {
|
||||
-- mappings = {
|
||||
-- i = { ['<c-enter>'] = 'to_fuzzy_refine' },
|
||||
-- },
|
||||
|
@ -589,16 +698,6 @@ require('lazy').setup({
|
|||
end,
|
||||
})
|
||||
|
||||
-- Change diagnostic symbols in the sign column (gutter)
|
||||
-- if vim.g.have_nerd_font then
|
||||
-- local signs = { ERROR = '', WARN = '', INFO = '', HINT = '' }
|
||||
-- local diagnostic_signs = {}
|
||||
-- for type, icon in pairs(signs) do
|
||||
-- diagnostic_signs[vim.diagnostic.severity[type]] = icon
|
||||
-- end
|
||||
-- vim.diagnostic.config { signs = { text = diagnostic_signs } }
|
||||
-- end
|
||||
|
||||
-- LSP servers and clients are able to communicate to each other what features they support.
|
||||
-- By default, Neovim doesn't support everything that is in the LSP specification.
|
||||
-- When you add nvim-cmp, luasnip, etc. Neovim now has *more* capabilities.
|
||||
|
@ -616,10 +715,12 @@ require('lazy').setup({
|
|||
-- - settings (table): Override the default settings passed when initializing the server.
|
||||
-- For example, to see the options for `lua_ls`, you could go to: https://luals.github.io/wiki/settings/
|
||||
local servers = {
|
||||
-- clangd = {},
|
||||
-- gopls = {},
|
||||
-- pyright = {},
|
||||
-- rust_analyzer = {},
|
||||
clangd = {},
|
||||
--gopls = {},
|
||||
pyright = {},
|
||||
html = {},
|
||||
-- ruby_lsp = {},
|
||||
rust_analyzer = {},
|
||||
-- ... etc. See `:help lspconfig-all` for a list of all the pre-configured LSPs
|
||||
--
|
||||
-- Some languages (like typescript) have entire language plugins that can be useful:
|
||||
|
@ -630,8 +731,8 @@ require('lazy').setup({
|
|||
--
|
||||
|
||||
lua_ls = {
|
||||
-- cmd = { ... },
|
||||
-- filetypes = { ... },
|
||||
-- cmd = {...},
|
||||
-- filetypes = { ...},
|
||||
-- capabilities = {},
|
||||
settings = {
|
||||
Lua = {
|
||||
|
@ -711,7 +812,7 @@ require('lazy').setup({
|
|||
formatters_by_ft = {
|
||||
lua = { 'stylua' },
|
||||
-- Conform can also run multiple formatters sequentially
|
||||
-- python = { "isort", "black" },
|
||||
python = { 'isort', 'black' },
|
||||
--
|
||||
-- You can use 'stop_after_first' to run the first available formatter from the list
|
||||
-- javascript = { "prettierd", "prettier", stop_after_first = true },
|
||||
|
@ -798,7 +899,6 @@ require('lazy').setup({
|
|||
-- Generally you don't need this, because nvim-cmp will display
|
||||
-- completions whenever it has completion options available.
|
||||
['<C-Space>'] = cmp.mapping.complete {},
|
||||
|
||||
-- Think of <c-l> as moving to the right of your snippet expansion.
|
||||
-- So if you have a snippet that's like:
|
||||
-- function $name($args)
|
||||
|
@ -846,7 +946,7 @@ require('lazy').setup({
|
|||
-- Load the colorscheme here.
|
||||
-- Like many other themes, this one has different styles, and you could load
|
||||
-- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'.
|
||||
vim.cmd.colorscheme 'tokyonight-night'
|
||||
vim.cmd.colorscheme 'tokyonight'
|
||||
|
||||
-- You can configure highlights by doing something like:
|
||||
vim.cmd.hi 'Comment gui=none'
|
||||
|
@ -899,7 +999,7 @@ require('lazy').setup({
|
|||
main = 'nvim-treesitter.configs', -- Sets main module to use for opts
|
||||
-- [[ Configure Treesitter ]] See `:help nvim-treesitter`
|
||||
opts = {
|
||||
ensure_installed = { 'bash', 'c', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'markdown_inline', 'query', 'vim', 'vimdoc' },
|
||||
ensure_installed = { 'bash', 'c', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'markdown_inline', 'query', 'vim', 'vimdoc', 'python', 'cpp' },
|
||||
-- Autoinstall languages that are not installed
|
||||
auto_install = true,
|
||||
highlight = {
|
||||
|
@ -919,7 +1019,7 @@ require('lazy').setup({
|
|||
-- - Treesitter + textobjects: https://github.com/nvim-treesitter/nvim-treesitter-textobjects
|
||||
},
|
||||
|
||||
-- The following comments only work if you have downloaded the kickstart repo, not just copy pasted the
|
||||
-- The following two comments only work if you have downloaded the kickstart repo, not just copy pasted the
|
||||
-- init.lua. If you want these files, they are in the repository, so you can just download them and
|
||||
-- place them in the correct locations.
|
||||
|
||||
|
@ -929,22 +1029,18 @@ require('lazy').setup({
|
|||
-- Uncomment any of the lines below to enable them (you will need to restart nvim).
|
||||
--
|
||||
-- require 'kickstart.plugins.debug',
|
||||
-- require 'kickstart.plugins.indent_line',
|
||||
require 'kickstart.plugins.indent_line',
|
||||
-- require 'kickstart.plugins.lint',
|
||||
-- require 'kickstart.plugins.autopairs',
|
||||
-- require 'kickstart.plugins.neo-tree',
|
||||
-- require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps
|
||||
require 'kickstart.plugins.autopairs',
|
||||
require 'kickstart.plugins.neo-tree',
|
||||
require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps
|
||||
|
||||
-- NOTE: The import below can automatically add your own plugins, configuration, etc from `lua/custom/plugins/*.lua`
|
||||
-- This is the easiest way to modularize your config.
|
||||
--
|
||||
-- Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going.
|
||||
-- For additional information, see `:help lazy.nvim-lazy.nvim-structuring-your-plugins`
|
||||
-- { import = 'custom.plugins' },
|
||||
--
|
||||
-- For additional information with loading, sourcing and examples see `:help lazy.nvim-🔌-plugin-spec`
|
||||
-- Or use telescope!
|
||||
-- In normal mode type `<space>sh` then write `lazy.nvim-plugin`
|
||||
-- you can continue same window with `<space>sr` which resumes last telescope search
|
||||
}, {
|
||||
ui = {
|
||||
-- If you are using a Nerd Font: set icons to an empty table which will use the
|
||||
|
@ -966,6 +1062,50 @@ require('lazy').setup({
|
|||
},
|
||||
},
|
||||
})
|
||||
vim.o.termguicolors = true
|
||||
|
||||
vim.cmd 'colorscheme jellybeans-nvim'
|
||||
|
||||
vim.g.sleuth_default_shiftwidth = 4
|
||||
vim.g.sleuth_default_tabstop = 4
|
||||
|
||||
vim.g.clang_format_path = 'C:/msys64/mingw64/bin/clang-format.exe'
|
||||
vim.g.clangd_path = 'C:/msys64/mingw64/bin/clangd.exe'
|
||||
--vim.g.lspconfig.clangd.setup {
|
||||
-- cmd = { 'C:/msys64/mingw64/bin/clangd.exe' },
|
||||
-- filetypes = { 'cpp', 'c' },
|
||||
--}
|
||||
|
||||
-- Filetype detection
|
||||
vim.filetype.add {
|
||||
extension = {
|
||||
['html.erb'] = 'eruby',
|
||||
},
|
||||
pattern = {
|
||||
['*.html.erb'] = 'eruby',
|
||||
},
|
||||
}
|
||||
|
||||
-- LSP configuration
|
||||
require('lspconfig').html.setup {
|
||||
filetypes = { 'html', 'eruby' },
|
||||
capabilities = {
|
||||
textDocument = {
|
||||
completion = {
|
||||
snippetSupport = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
require('lspconfig').solargraph.setup {
|
||||
filetypes = { 'ruby', 'eruby' },
|
||||
settings = {
|
||||
solargraph = {
|
||||
diagnostics = true,
|
||||
completion = true,
|
||||
},
|
||||
},
|
||||
}
|
||||
-- The line beneath this is called `modeline`. See `:help modeline`
|
||||
-- vim: ts=2 sts=2 sw=2 et
|
||||
|
|
Loading…
Reference in New Issue