feat: refactor
This commit is contained in:
@@ -1,228 +1,93 @@
|
||||
require("install-packer")
|
||||
require("utils.install-packer")
|
||||
|
||||
local u = require("utils")
|
||||
require("core.plugins")
|
||||
|
||||
local o = vim.o
|
||||
local g = vim.g
|
||||
local cmd = vim.cmd
|
||||
local opt = vim.opt
|
||||
|
||||
require("plugins")
|
||||
|
||||
if u.has_plugin("cmp") then
|
||||
-- Global options
|
||||
o.number = true -- show line number
|
||||
o.showmatch = true -- show matching brackets
|
||||
require "impatient"
|
||||
|
||||
-- Indentation options
|
||||
vim.cmd [[
|
||||
set autoindent
|
||||
set expandtab
|
||||
set shiftwidth=2
|
||||
set softtabstop=2
|
||||
set tabstop=1
|
||||
]]
|
||||
require "core.options"
|
||||
require "core.autocommands"
|
||||
require "core.keymappings"
|
||||
|
||||
g.hidden = true -- unload buffers when hidden
|
||||
g.filetype = true -- execute autocommands based on filetype
|
||||
opt.clipboard = {"unnamedplus"}
|
||||
o.autoread = true
|
||||
opt.termguicolors = true
|
||||
local packer = require("packer")
|
||||
|
||||
-- Search
|
||||
o.inccommand = "nosplit" -- show substitutions incrementally
|
||||
o.ignorecase = true
|
||||
o.smartcase = true
|
||||
opt.wildignore:append(".git/*", "node_modules/*")
|
||||
o.wildignorecase = true
|
||||
o.lazyredraw = true
|
||||
-- Have packer use a popup window
|
||||
packer.init {
|
||||
display = {
|
||||
open_fn = function()
|
||||
return require("packer.util").float { border = "rounded" }
|
||||
end,
|
||||
},
|
||||
}
|
||||
|
||||
opt.listchars:append(
|
||||
{
|
||||
extends = "#",
|
||||
eol = "↴",
|
||||
space = "⋅",
|
||||
tab = "▸ "
|
||||
}
|
||||
)
|
||||
require "configs.command-center"
|
||||
require "configs.notify"
|
||||
require "configs.lsp"
|
||||
require "configs.lspinstaller"
|
||||
require "configs.telescope"
|
||||
require "configs.tree"
|
||||
|
||||
-- Shortmess
|
||||
cmd [[set shortmess+=F]]
|
||||
g.loaded_netrw = 1
|
||||
g.loaded_netrwPlugin = 1
|
||||
g.loaded_zipPlugin = 1
|
||||
g.loaded_zip = 1
|
||||
|
||||
g.languagetool_server_jar = "~/build/languagetool/languagetool-server.jar"
|
||||
g.languagetool_lang = "de"
|
||||
|
||||
cmd [[set mouse=a]] -- enable mouse interaction
|
||||
cmd [[set undofile]]
|
||||
cmd [[set fcs=eob:\ ]] -- disable showing ~ in empty lines
|
||||
|
||||
cmd [[set noshowmode]] -- to get rid of thing like --INSERT--
|
||||
cmd [[set noshowcmd]] -- to get rid of display of last command
|
||||
cmd [[set shortmess+=F]] -- to get rid of the file name displayed in the command line bar
|
||||
|
||||
cmd [[set noruler]]
|
||||
|
||||
g.ale_fixers = {"prettier", "eslint"}
|
||||
|
||||
require("command-center-conf")
|
||||
|
||||
local notify = require("notify")
|
||||
vim.notify = notify;
|
||||
|
||||
notify.setup(
|
||||
{
|
||||
stages = "fade_in_slide_out",
|
||||
max_width = 50,
|
||||
render = "minimal",
|
||||
background_colour = "#000000",
|
||||
icons = {
|
||||
ERROR = "",
|
||||
WARN = "",
|
||||
INFO = "",
|
||||
DEBUG = "",
|
||||
TRACE = "✎"
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
vim.wo.foldmethod = "expr"
|
||||
vim.wo.foldexpr = "nvim_treesitter#foldexpr()"
|
||||
vim.cmd [[
|
||||
set foldlevel=99
|
||||
]]
|
||||
|
||||
require("telescope-conf").setup()
|
||||
|
||||
-- Enable Theming / Syntax
|
||||
o.syntax = "enable"
|
||||
o.termguicolors = true
|
||||
cmd("colorscheme nightfox")
|
||||
g.material_terminal_italics = 1
|
||||
g.material_theme_style = "darker"
|
||||
g.tokyonight_style = "night"
|
||||
g.tokyonight_transparent_sidebar = true
|
||||
require("nightfox").setup(
|
||||
{
|
||||
options = {
|
||||
styles = {
|
||||
comments = "italic",
|
||||
keywords = "bold",
|
||||
types = "italic,bold"
|
||||
},
|
||||
transparent = true
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
g.markdown_fenced_languages = {"html", "python", "bash=sh"}
|
||||
|
||||
-- Remove background color
|
||||
cmd("highlight Normal guibg=none")
|
||||
cmd("highlight NonText guibg=none")
|
||||
|
||||
|
||||
|
||||
-- Configure nvim-tree
|
||||
g.nvim_tree_highlight_opened_files = 1
|
||||
g.nvim_tree_group_empty = 1
|
||||
g.nvim_tree_show_icons = {
|
||||
folder_arrows = 0,
|
||||
folders = 1,
|
||||
files = 1,
|
||||
git = 1
|
||||
}
|
||||
require("nvim-tree").setup {
|
||||
auto_open = 1,
|
||||
gitignore = 1,
|
||||
group_empty = 1,
|
||||
hijack_cursor = 1,
|
||||
update_cwd = true,
|
||||
update_focused_file = {
|
||||
enable = false
|
||||
},
|
||||
renderer = {
|
||||
indent_markers = {
|
||||
enable = 0
|
||||
}
|
||||
},
|
||||
diagnostics = {
|
||||
enable = true,
|
||||
icons = {
|
||||
hint = "",
|
||||
info = "",
|
||||
warning = "",
|
||||
error = ""
|
||||
}
|
||||
},
|
||||
view = {
|
||||
auto_resize = true,
|
||||
hide_root_folder = true,
|
||||
signcolumn = "no"
|
||||
}
|
||||
-- Enable Theming / Syntax
|
||||
require("nightfox").setup({
|
||||
options = {
|
||||
transparent = true
|
||||
}
|
||||
})
|
||||
cmd("colorscheme nightfox")
|
||||
require "utils.theme-reloader"
|
||||
require "configs.lualine"
|
||||
|
||||
-- Configure Wiki
|
||||
g.wiki_root = "~/Notes"
|
||||
g.wiki_filetypes = {"md"}
|
||||
g.wiki_link_extension = ".md"
|
||||
-- Configure Wiki
|
||||
g.wiki_root = "~/Notes"
|
||||
g.wiki_filetypes = { "md" }
|
||||
g.wiki_link_extension = ".md"
|
||||
|
||||
-- KeyBindings
|
||||
require "keymappings"
|
||||
require "overlays"
|
||||
|
||||
require "overlays"
|
||||
-- require "nvim-tmux-navigation".setup {
|
||||
-- keybindings = {
|
||||
-- left = "<C-h>",
|
||||
-- down = "<C-j>",
|
||||
-- up = "<C-k>",
|
||||
-- right = "<C-l>",
|
||||
-- last_active = "<C-\\>",
|
||||
-- next = "<C-Space>"
|
||||
-- }
|
||||
-- }
|
||||
|
||||
require "nvim-tmux-navigation".setup {
|
||||
keybindings = {
|
||||
left = "<C-h>",
|
||||
down = "<C-j>",
|
||||
up = "<C-k>",
|
||||
right = "<C-l>",
|
||||
last_active = "<C-\\>",
|
||||
next = "<C-Space>"
|
||||
}
|
||||
}
|
||||
require "nvim-autopairs".setup()
|
||||
|
||||
require "nvim-autopairs".setup()
|
||||
-- Treesitter config
|
||||
require "configs.treesitter"
|
||||
|
||||
-- Treesitter config
|
||||
require "treesitter-conf"
|
||||
-- Autocompletion Setup
|
||||
require "snippets"
|
||||
require "configs.autocomplete"
|
||||
|
||||
-- Autocompletion Setup
|
||||
require "snippets"
|
||||
require "cmp-conf"
|
||||
-- Setup rest.vim
|
||||
-- require("rest-nvim").setup(
|
||||
-- {
|
||||
-- -- Open request results in a horizontal split
|
||||
-- result_split_horizontal = false,
|
||||
-- -- Skip SSL verification, useful for unknown certificates
|
||||
-- skip_ssl_verification = false,
|
||||
-- -- Highlight request on run
|
||||
-- highlight = {
|
||||
-- enabled = true,
|
||||
-- timeout = 150
|
||||
-- },
|
||||
-- -- Jump to request line on run
|
||||
-- jump_to_request = false
|
||||
-- }
|
||||
-- )
|
||||
|
||||
-- LSP Config
|
||||
require "lspinstaller-conf"
|
||||
|
||||
-- Setup Command OVerlays
|
||||
require "lazy-git"
|
||||
|
||||
require "autocommands"
|
||||
|
||||
-- Setup rest.vim
|
||||
require("rest-nvim").setup(
|
||||
{
|
||||
-- Open request results in a horizontal split
|
||||
result_split_horizontal = false,
|
||||
-- Skip SSL verification, useful for unknown certificates
|
||||
skip_ssl_verification = false,
|
||||
-- Highlight request on run
|
||||
highlight = {
|
||||
enabled = true,
|
||||
timeout = 150
|
||||
},
|
||||
-- Jump to request line on run
|
||||
jump_to_request = false
|
||||
}
|
||||
)
|
||||
|
||||
-- LSP Config
|
||||
require "lspinstaller-conf"
|
||||
-- require "lsp-conf"
|
||||
-- LSP Config
|
||||
-- require "lsp-conf"
|
||||
else
|
||||
vim.cmd [[PackerSync]]
|
||||
vim.cmd [[PackerSync]]
|
||||
vim.cmd [[echo Installed -> Reload]]
|
||||
end
|
||||
|
@@ -1,24 +1,24 @@
|
||||
-- luasnip setup
|
||||
local luasnip = require "luasnip"
|
||||
local lspkind = require "lspkind"
|
||||
-- local lspkind = require "lspkind"
|
||||
local cmp = require "cmp"
|
||||
local cmp_autopairs = require("nvim-autopairs.completion.cmp")
|
||||
|
||||
cmp.setup {
|
||||
formatting = {
|
||||
format = lspkind.cmp_format(
|
||||
{
|
||||
with_text = true,
|
||||
menu = ({
|
||||
buffer = "[Buffer]",
|
||||
nvim_lsp = "[LSP]",
|
||||
luasnip = "[LuaSnip]",
|
||||
nvim_lua = "[Lua]",
|
||||
latex_symbols = "[Latex]"
|
||||
})
|
||||
}
|
||||
)
|
||||
},
|
||||
-- formatting = {
|
||||
-- format = lspkind.cmp_format(
|
||||
-- {
|
||||
-- with_text = true,
|
||||
-- menu = ({
|
||||
-- buffer = "[Buffer]",
|
||||
-- nvim_lsp = "[LSP]",
|
||||
-- luasnip = "[LuaSnip]",
|
||||
-- nvim_lua = "[Lua]",
|
||||
-- latex_symbols = "[Latex]"
|
||||
-- })
|
||||
-- }
|
||||
-- )
|
||||
-- },
|
||||
experimental = {
|
||||
ghost_text = true
|
||||
},
|
@@ -4,28 +4,28 @@ local noremap = {noremap = true}
|
||||
command_center.add({
|
||||
{
|
||||
description = "Search inside current buffer",
|
||||
command = "Telescope current_buffer_fuzzy_find",
|
||||
cmd = "Telescope current_buffer_fuzzy_find",
|
||||
keybindings = { "n", "<leader>fl", noremap },
|
||||
}, {
|
||||
-- If no descirption is specified, command is used to replace descirption by default
|
||||
-- You can change this behavior in settigns
|
||||
command = "Telescope find_files",
|
||||
cmd = "Telescope find_files",
|
||||
},
|
||||
{
|
||||
-- If no keybindings specified, no keybindings will be displayed or registered
|
||||
description = "Find hidden files",
|
||||
command = "Telescope find_files hidden=true",
|
||||
cmd = "Telescope find_files hidden=true",
|
||||
},
|
||||
{
|
||||
-- You can specify multiple keybindings for the same command ...
|
||||
description = "Show document symbols",
|
||||
command = "Telescope lsp_document_symbols",
|
||||
cmd = "Telescope lsp_document_symbols",
|
||||
},
|
||||
{
|
||||
description = "Show function signaure (hover)",
|
||||
command = "lua vim.lsp.buf.hover()",
|
||||
cmd = "lua vim.lsp.buf.hover()",
|
||||
},{
|
||||
description="(TS) Organize Imports",
|
||||
command = "OrganizeImports"
|
||||
cmd = "OrganizeImports"
|
||||
}
|
||||
})
|
@@ -1,6 +1,6 @@
|
||||
local lsp = require "lspconfig"
|
||||
local lsp_status = require("lsp-status")
|
||||
local ts_utils = require("nvim-lsp-ts-utils")
|
||||
-- local ts_utils = require("nvim-lsp-ts-utils")
|
||||
|
||||
require'nvim-lightbulb'.setup {
|
||||
-- LSP client names to ignore
|
239
configs/nvim/lua/configs/lualine.lua
Normal file
239
configs/nvim/lua/configs/lualine.lua
Normal file
@@ -0,0 +1,239 @@
|
||||
-----------------
|
||||
-- Status Line --
|
||||
-----------------
|
||||
|
||||
-- Eviline / Vimline config for lualine
|
||||
-- Author: shadmansaleh
|
||||
-- Credit: glepnir
|
||||
-- Credit: Elai
|
||||
|
||||
local lualine = require "lualine"
|
||||
|
||||
-- Color table for highlights
|
||||
-- stylua: ignore
|
||||
local colors = {
|
||||
bg = '#00000000',
|
||||
fg = '#bbc2cf',
|
||||
yellow = '#ECBE7B',
|
||||
cyan = '#008080',
|
||||
darkblue = '#081633',
|
||||
green = '#B7BD82',
|
||||
orange = '#8d6141',
|
||||
violet = '#B294BB',
|
||||
magenta = '#AE84BB',
|
||||
blue = '#81A2BE',
|
||||
red = '#CC8282',
|
||||
}
|
||||
|
||||
local conditions = {
|
||||
buffer_not_empty = function()
|
||||
return vim.fn.empty(vim.fn.expand('%:t')) ~= 1
|
||||
end,
|
||||
hide_in_width = function()
|
||||
return vim.fn.winwidth(0) > 80
|
||||
end,
|
||||
check_git_workspace = function()
|
||||
local filepath = vim.fn.expand('%:p:h')
|
||||
local gitdir = vim.fn.finddir('.git', filepath .. ';')
|
||||
return gitdir and #gitdir > 0 and #gitdir < #filepath
|
||||
end,
|
||||
}
|
||||
|
||||
-- Config
|
||||
local config = {
|
||||
options = {
|
||||
-- Disable sections and component separators
|
||||
component_separators = '',
|
||||
section_separators = '',
|
||||
theme = {
|
||||
-- We are going to use lualine_c an lualine_x as left and
|
||||
-- right section. Both are highlighted by c theme . So we
|
||||
-- are just setting default looks o statusline
|
||||
normal = { c = { fg = colors.fg, bg = colors.bg } },
|
||||
inactive = { c = { fg = colors.fg, bg = colors.bg } },
|
||||
},
|
||||
},
|
||||
|
||||
-- These are to remove the defaults
|
||||
sections = {
|
||||
lualine_a = {},
|
||||
lualine_b = {},
|
||||
lualine_y = {},
|
||||
lualine_z = {},
|
||||
-- These will be filled later
|
||||
lualine_c = {},
|
||||
lualine_x = {},
|
||||
},
|
||||
inactive_sections = {
|
||||
-- these are to remove the defaults
|
||||
lualine_a = {},
|
||||
lualine_b = {},
|
||||
lualine_y = {},
|
||||
lualine_z = {},
|
||||
lualine_c = {},
|
||||
lualine_x = {},
|
||||
},
|
||||
}
|
||||
|
||||
-- Inserts a component in lualine_c at left section
|
||||
local function ins_left(component)
|
||||
table.insert(config.sections.lualine_c, component)
|
||||
end
|
||||
|
||||
-- Inserts a component in lualine_x ot right section
|
||||
local function ins_right(component)
|
||||
table.insert(config.sections.lualine_x, component)
|
||||
end
|
||||
|
||||
-- Begining Of The StatusLine
|
||||
-- ins_left {
|
||||
-- function()
|
||||
-- return '|'
|
||||
-- end,
|
||||
-- color = { fg = colors.blue }, -- Sets highlighting of component
|
||||
-- padding = { left = 0, right = 1 }, -- We don't need space before this
|
||||
-- }
|
||||
|
||||
-- Icon Of Diffrent Mode: -- normal -- | -- insert -- | -- visual --
|
||||
ins_left {
|
||||
-- mode component
|
||||
function()
|
||||
return ''
|
||||
end,
|
||||
color = function()
|
||||
|
||||
-- auto change color according to neovims mode
|
||||
local mode_color = {
|
||||
n = colors.green,
|
||||
i = colors.blue,
|
||||
v = colors.magenta,
|
||||
[''] = colors.blue,
|
||||
V = colors.blue,
|
||||
c = colors.red,
|
||||
no = colors.red,
|
||||
s = colors.orange,
|
||||
S = colors.orange,
|
||||
[''] = colors.orange,
|
||||
ic = colors.yellow,
|
||||
R = colors.violet,
|
||||
Rv = colors.violet,
|
||||
cv = colors.red,
|
||||
ce = colors.red,
|
||||
r = colors.cyan,
|
||||
rm = colors.cyan,
|
||||
['r?'] = colors.cyan,
|
||||
['!'] = colors.red,
|
||||
t = colors.red,
|
||||
}
|
||||
return { fg = mode_color[vim.fn.mode()] }
|
||||
end,
|
||||
padding = { right = 1 },
|
||||
}
|
||||
|
||||
-- File Name
|
||||
ins_left {
|
||||
'filename',
|
||||
file_status = true, -- Displays file status (readonly status, modified status)
|
||||
path = 2, -- 0: Just the filename
|
||||
-- 1: Relative path
|
||||
-- 2: Absolute path
|
||||
shorting_target = 100, -- Shortens path to leave 40 spaces in the window
|
||||
-- for other components. (terrible name, any suggestions?)
|
||||
symbols = {
|
||||
modified = ' ', -- Text to show when the file is modified.
|
||||
readonly = ' ', -- Text to show when the file is non-modifiable or readonly.
|
||||
unnamed = '[No Name]', -- Text to show for unnamed buffers.
|
||||
}
|
||||
}
|
||||
|
||||
-- Git Diff
|
||||
local function diff_source()
|
||||
local gitsigns = vim.b.gitsigns_status_dict
|
||||
if gitsigns then
|
||||
return {
|
||||
added = gitsigns.added,
|
||||
modified = gitsigns.changed,
|
||||
removed = gitsigns.removed
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
ins_right { 'diff', source = diff_source }
|
||||
|
||||
-- Git Branch
|
||||
ins_right {
|
||||
'branch',
|
||||
icon = '',
|
||||
-- icon = '',
|
||||
-- color = { fg = colors.green },
|
||||
-- padding = { right = 1 },
|
||||
-- padding = { left = 1 },
|
||||
}
|
||||
|
||||
-- File Type
|
||||
ins_right {
|
||||
'filetype',
|
||||
icon_only = true,
|
||||
padding = { right = 2, left = 1 }
|
||||
}
|
||||
|
||||
-- File Encoding
|
||||
ins_right {
|
||||
'o:encoding', -- option component same as &encoding in viml
|
||||
fmt = string.upper, -- I'm not sure why it's upper case either ;)
|
||||
cond = conditions.hide_in_width,
|
||||
padding = { right = 2 },
|
||||
-- color = { fg = colors.green, gui = 'bold' },
|
||||
-- Add components to right sections
|
||||
}
|
||||
|
||||
-- File Format
|
||||
-- ins_right {
|
||||
-- 'fileformat',
|
||||
-- -- fmt = string.upper,
|
||||
-- -- icons_enabled = false, -- I think icons are cool but Eviline doesn't have them. sigh
|
||||
-- padding = { right = 2 },
|
||||
-- symbols = { unix = 'NIX '},
|
||||
-- -- color = { fg = colors.green, gui = 'bold' },
|
||||
-- }
|
||||
|
||||
-- File Size
|
||||
ins_right {
|
||||
-- filesize component
|
||||
'filesize',
|
||||
padding = { right = 2 },
|
||||
cond = conditions.buffer_not_empty,
|
||||
}
|
||||
|
||||
-- Text Progress
|
||||
ins_right {
|
||||
'progress',
|
||||
padding = { right = 1 },
|
||||
-- padding = { left = 1 },
|
||||
}
|
||||
|
||||
-- File Location
|
||||
ins_right {
|
||||
'location',
|
||||
padding = { right = 0 },
|
||||
}
|
||||
|
||||
-- Insert mid section. You can make any number of sections in neovim :)
|
||||
-- for lualine it's any number greater then 2
|
||||
ins_left {
|
||||
function()
|
||||
return '%='
|
||||
end,
|
||||
}
|
||||
|
||||
-- End Of The Status Bar
|
||||
-- ins_right {
|
||||
-- function()
|
||||
-- return ''
|
||||
-- end,
|
||||
-- color = { fg = colors.blue }, -- Sets highlighting of component
|
||||
-- padding = { left = 1, right = 0 }, -- We don't need space before this
|
||||
-- }
|
||||
|
||||
-- Now don't forget to initialize lualine
|
||||
lualine.setup(config)
|
17
configs/nvim/lua/configs/notify.lua
Normal file
17
configs/nvim/lua/configs/notify.lua
Normal file
@@ -0,0 +1,17 @@
|
||||
local notify = require("notify")
|
||||
notify.setup(
|
||||
{
|
||||
stages = "fade_in_slide_out",
|
||||
max_width = 50,
|
||||
render = "minimal",
|
||||
background_colour = "#000000",
|
||||
icons = {
|
||||
ERROR = "",
|
||||
WARN = "",
|
||||
INFO = "",
|
||||
DEBUG = "",
|
||||
TRACE = "✎"
|
||||
}
|
||||
}
|
||||
)
|
||||
vim.notify = notify;
|
@@ -49,11 +49,7 @@ local default = {
|
||||
}
|
||||
}
|
||||
|
||||
local M = {}
|
||||
M.setup = function()
|
||||
telescope.setup(default)
|
||||
-- telescope.load_extension("themes");
|
||||
telescope.load_extension("command_center");
|
||||
end
|
||||
|
||||
return M
|
||||
telescope.setup(default)
|
||||
-- telescope.load_extension("themes");
|
||||
telescope.load_extension("command_center");
|
||||
telescope.load_extension("notify");
|
40
configs/nvim/lua/configs/tree.lua
Normal file
40
configs/nvim/lua/configs/tree.lua
Normal file
@@ -0,0 +1,40 @@
|
||||
local g = vim.g
|
||||
|
||||
-- Configure nvim-tree
|
||||
g.nvim_tree_highlight_opened_files = 1
|
||||
g.nvim_tree_group_empty = 1
|
||||
g.nvim_tree_show_icons = {
|
||||
folder_arrows = 0,
|
||||
folders = 1,
|
||||
files = 1,
|
||||
git = 1
|
||||
}
|
||||
require("nvim-tree").setup {
|
||||
auto_open = 1,
|
||||
gitignore = 1,
|
||||
group_empty = 1,
|
||||
hijack_cursor = 1,
|
||||
update_cwd = true,
|
||||
update_focused_file = {
|
||||
enable = false
|
||||
},
|
||||
renderer = {
|
||||
indent_markers = {
|
||||
enable = 0
|
||||
}
|
||||
},
|
||||
diagnostics = {
|
||||
enable = true,
|
||||
icons = {
|
||||
hint = "",
|
||||
info = "",
|
||||
warning = "",
|
||||
error = ""
|
||||
}
|
||||
},
|
||||
view = {
|
||||
auto_resize = true,
|
||||
hide_root_folder = true,
|
||||
signcolumn = "no"
|
||||
}
|
||||
}
|
@@ -7,11 +7,6 @@ cmd [[
|
||||
augroup END
|
||||
]]
|
||||
|
||||
cmd [[
|
||||
au ColorScheme * hi Normal ctermbg=none guibg=none
|
||||
au ColorScheme myspecialcolors hi Normal ctermbg=red guibg=red
|
||||
]]
|
||||
|
||||
cmd [[
|
||||
augroup filetypedetect
|
||||
au BufNewFile,BufRead *.frag setl ft=glsl
|
||||
@@ -27,6 +22,9 @@ augroup SaveManualFolds
|
||||
augroup END
|
||||
]]
|
||||
|
||||
|
||||
|
||||
|
||||
vim.api.nvim_create_autocmd("BufWritePre",{
|
||||
callback = function()
|
||||
vim.lsp.buf.formatting_sync();
|
@@ -1,6 +1,5 @@
|
||||
local map = vim.api.nvim_set_keymap
|
||||
local g = vim.g
|
||||
local cmd = vim.cmd
|
||||
|
||||
local options = {noremap = true}
|
||||
local remap = {noremap = false}
|
||||
@@ -21,7 +20,7 @@ map("n", "K", "<Cmd>lua vim.lsp.buf.hover()<CR>", options)
|
||||
map("n", "<Leader>e", "<cmd>lua vim.diagnostic.open_float()<CR>", options)
|
||||
map("n", "<Leader>rn", "<cmd>lua vim.lsp.buf.rename()<CR>", options)
|
||||
map("n", "<Leader>c", "<cmd>lua vim.lsp.buf.code_action()<CR>", options)
|
||||
map("n", "<Leader><C-f>", ":Neoformat<CR>", options)
|
||||
-- map("n", "<Leader><C-f>", ":Neoformat<CR>", options)
|
||||
map("n", "[d", "<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>", options)
|
||||
map("n", "]d", "<cmd>lua vim.lsp.diagnostic.goto_next()<CR>", options)
|
||||
map("n", "<leader>t", ":TroubleToggle<CR>", remap)
|
||||
@@ -36,6 +35,9 @@ map("n", "<C-l>", "<C-w>l", options)
|
||||
map("n", "<A-Left>", ":bprevious<CR>",options);
|
||||
map("n", "<A-Right>", ":bnext<CR>",options);
|
||||
|
||||
-- Backspace Delete like Browser
|
||||
map('i', '<C-H>', '<Esc>caw', options)
|
||||
|
||||
map("n", "Y", "yy", options)
|
||||
map("n", "<Leader>k", "{", options)
|
||||
map("n", "<Leader>j", "}", options)
|
63
configs/nvim/lua/core/options.lua
Normal file
63
configs/nvim/lua/core/options.lua
Normal file
@@ -0,0 +1,63 @@
|
||||
|
||||
-------------
|
||||
-- General --
|
||||
-------------
|
||||
local set = vim.opt
|
||||
set.swapfile = false -- Don't use swapfile
|
||||
set.updatetime = 0 -- Faster completion
|
||||
set.encoding="utf-8" -- The encoding displayed
|
||||
set.fileencoding="utf-8" -- The encoding written to file
|
||||
set.smartindent = true -- Makes indenting smart
|
||||
set.iskeyword:append("-") -- treat dash separated words as a word text object"
|
||||
set.clipboard = "unnamedplus" -- Copy paste between vim and everything else
|
||||
set.smarttab = true -- Makes tabbing smarter will realize you have 2 vs 4
|
||||
set.expandtab = true -- Converts tabs to spaces
|
||||
set.autoindent = true -- Good auto indent
|
||||
set.autochdir = true -- Your working directory will always be the same as your working directory
|
||||
set.incsearch = true -- sets incremental search
|
||||
set.shell = "/bin/zsh" -- Set your shell to bash or zsh
|
||||
set.shortmess:append "sI" -- Disable nvim intro
|
||||
vim.cmd [[set nobackup]] -- creates a backup file
|
||||
vim.cmd [[set nowritebackup]] -- creates a backup file i guess
|
||||
vim.cmd [[set formatoptions-=cro]] -- Stop newline continution of comments
|
||||
vim.cmd [[set complete+=kspell]] -- auto complete with spellcheck
|
||||
vim.cmd [[set completeopt=menuone,longest]] -- auto complete menu (It's pretty great)
|
||||
vim.cmd [[set nocompatible]] -- Disable compatibility to old-time vi
|
||||
set.mouse = 'a' -- Enable mouse support
|
||||
|
||||
---------------
|
||||
-- Neovim UI --
|
||||
---------------
|
||||
set.pumheight = 15 -- Makes popup menu smaller
|
||||
set.ruler = true -- Show the cursor position all the time
|
||||
set.splitbelow = true -- Horizontal splits will automatically be below
|
||||
set.splitright = true -- Vertical splits will automatically be to the right
|
||||
set.conceallevel = 0 -- So that I can see `` in markdown files
|
||||
set.tabstop = 2 -- Insert 2 spaces for a tab
|
||||
set.number = true -- Line numbers
|
||||
set.background = "dark" -- tell vim what the background color looks like
|
||||
set.virtualedit = "onemore" -- With This option you can move the cursor one character over the end
|
||||
set.ignorecase = true -- ignores case when searching
|
||||
set.smartcase = true -- turns on case sensitive search when letters are capitalized
|
||||
set.termguicolors = true -- set term gui colors (most terminals support this)
|
||||
set.laststatus=2 -- Always display the status line
|
||||
set.title = true -- Show current txt that you editing
|
||||
set.relativenumber = false -- Vim’s absolute, relative and hybrid line numbers
|
||||
set.cursorline = false -- Enable highlighting of the current line
|
||||
set.shiftwidth = 2 -- Change the number of space characters inserted for indentation
|
||||
set.showtabline = 1 -- Always show tabs
|
||||
set.cmdheight = 1 -- More space for displaying messages
|
||||
vim.cmd [[set nowrap]] -- Display long lines as just one line
|
||||
vim.cmd [[set noshowmode]] -- We don't need to see things like -- INSERT -- anymore
|
||||
vim.cmd [[syntax enable]] -- Enables syntax highlighing
|
||||
vim.cmd [[set t_Co=256]] -- Support 256 colors
|
||||
-- vim.cmd "set whichwrap+=<,>,[,],h,l" -- Breaks Space-Time Continuum
|
||||
|
||||
-----------------
|
||||
-- Memory, CPU --
|
||||
-----------------
|
||||
set.hidden = true -- Required to keep multiple buffers open multiple buffers
|
||||
set.timeoutlen = 500 -- By default timeoutlen is 1000 ms
|
||||
set.lazyredraw = true -- Disable lazyredraw
|
||||
set.synmaxcol = 240 -- Max column for syntax highlight
|
||||
set.updatetime = 700 -- ms to wait for trigger an event
|
@@ -3,15 +3,18 @@ return require("packer").startup(
|
||||
-- Let packer manage itself
|
||||
use "wbthomason/packer.nvim"
|
||||
|
||||
use 'lewis6991/impatient.nvim'
|
||||
|
||||
-- General Helper Functions
|
||||
use "nvim-lua/plenary.nvim"
|
||||
|
||||
-- Filetype Detection
|
||||
use "nathom/filetype.nvim"
|
||||
-- use "nathom/filetype.nvim"
|
||||
|
||||
-- Theming Section
|
||||
-- use 'folke/tokyonight.nvim'
|
||||
use "EdenEast/nightfox.nvim"
|
||||
use "nvim-lualine/lualine.nvim"
|
||||
-- use "xiyaowong/nvim-transparent"
|
||||
|
||||
-- Layout Plugins
|
||||
@@ -19,22 +22,22 @@ return require("packer").startup(
|
||||
use "kyazdani42/nvim-tree.lua"
|
||||
use "nvim-lua/popup.nvim"
|
||||
use "mhinz/vim-startify"
|
||||
use "tpope/vim-fugitive"
|
||||
-- use "tpope/vim-fugitive"
|
||||
use "tpope/vim-commentary"
|
||||
use "tpope/vim-surround"
|
||||
use "lambdalisue/suda.vim"
|
||||
-- use "tpope/vim-surround"
|
||||
-- use "lambdalisue/suda.vim"
|
||||
use "windwp/nvim-autopairs"
|
||||
|
||||
-- Code Navigation
|
||||
use "alexghergh/nvim-tmux-navigation"
|
||||
use "dense-analysis/ale"
|
||||
use "nathanmsmith/nvim-ale-diagnostic"
|
||||
-- use "alexghergh/nvim-tmux-navigation"
|
||||
-- use "dense-analysis/ale"
|
||||
-- use "nathanmsmith/nvim-ale-diagnostic"
|
||||
use "junegunn/fzf"
|
||||
use "nvim-telescope/telescope.nvim"
|
||||
use "gfeiyou/command-center.nvim"
|
||||
|
||||
-- Postman like features
|
||||
use "NTBBloodbath/rest.nvim"
|
||||
-- use "NTBBloodbath/rest.nvim"
|
||||
|
||||
-- Obsidian / Roam like features
|
||||
-- use "lervag/wiki.vim"
|
||||
@@ -44,7 +47,7 @@ return require("packer").startup(
|
||||
-- Lsp Errors
|
||||
use "folke/lsp-colors.nvim"
|
||||
use "kosayoda/nvim-lightbulb"
|
||||
use "onsails/lspkind-nvim"
|
||||
-- use "onsails/lspkind-nvim"
|
||||
use {
|
||||
"folke/trouble.nvim",
|
||||
requires = "kyazdani42/nvim-web-devicons",
|
||||
@@ -54,7 +57,7 @@ return require("packer").startup(
|
||||
}
|
||||
|
||||
-- Syntax / Autocomplete
|
||||
use "terminalnode/sway-vim-syntax" --sway config syntax
|
||||
-- use "terminalnode/sway-vim-syntax" --sway config syntax
|
||||
use "neovim/nvim-lspconfig"
|
||||
use "hrsh7th/nvim-cmp"
|
||||
use "hrsh7th/cmp-nvim-lsp"
|
||||
@@ -68,8 +71,8 @@ return require("packer").startup(
|
||||
use "saadparwaiz1/cmp_luasnip"
|
||||
use "williamboman/nvim-lsp-installer"
|
||||
use "nvim-lua/lsp-status.nvim"
|
||||
use "jose-elias-alvarez/nvim-lsp-ts-utils"
|
||||
use "neoclide/jsonc.vim"
|
||||
-- use "jose-elias-alvarez/nvim-lsp-ts-utils"
|
||||
-- use "neoclide/jsonc.vim"
|
||||
use "brymer-meneses/grammar-guard.nvim"
|
||||
use {
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
@@ -84,6 +87,8 @@ return require("packer").startup(
|
||||
-- General Popup Window
|
||||
use "akinsho/nvim-toggleterm.lua"
|
||||
|
||||
use "rktjmp/fwatch.nvim"
|
||||
|
||||
-- Database Feature
|
||||
use "tpope/vim-dadbod"
|
||||
use "kristijanhusak/vim-dadbod-ui"
|
@@ -1,57 +0,0 @@
|
||||
local cmd = vim.cmd
|
||||
local g = vim.g
|
||||
|
||||
local function tablelength(T)
|
||||
local count = 0
|
||||
for _ in pairs(T) do
|
||||
count = count + 1
|
||||
end
|
||||
return count
|
||||
end
|
||||
|
||||
local function select_client(method)
|
||||
local all_clients = vim.tbl_values(vim.lsp.buf_get_clients())
|
||||
|
||||
local supported_client
|
||||
local found_client = false
|
||||
for _, client in ipairs(all_clients) do
|
||||
local supports = client.supports_method(method)
|
||||
if supports then
|
||||
found_client = true
|
||||
supported_client = client
|
||||
end
|
||||
end
|
||||
|
||||
if not found_client then
|
||||
return nil
|
||||
end
|
||||
|
||||
return supported_client
|
||||
end
|
||||
|
||||
g.neoformat_enabled_glsl = {}
|
||||
|
||||
function FormattingSync()
|
||||
vim.cmd("Neoformat")
|
||||
-- local client = select_client("textDocument/formatting")
|
||||
-- if client == nil then
|
||||
-- vim.notify("No LSP Client with formatting connected")
|
||||
-- end
|
||||
-- vim.notify("Formatting with LSP")
|
||||
-- local params = util.make_formatting_params({})
|
||||
-- local result, err = client.request_sync("textDocument/formatting", params, 500, vim.api.nvim_get_current_buf())
|
||||
-- if result and result.result then
|
||||
-- util.apply_text_edits(result.result)
|
||||
-- elseif err then
|
||||
-- vim.notify("vim.lsp.buf.formatting_sync: " .. err, vim.log.levels.WARN)
|
||||
-- end
|
||||
end
|
||||
|
||||
vim.cmd [[command! Format lua FormattingSync()]]
|
||||
|
||||
cmd [[
|
||||
augroup auto_format
|
||||
au!
|
||||
au BufWritePre * lua FormattingSync()
|
||||
augroup END
|
||||
]]
|
@@ -1,68 +0,0 @@
|
||||
local Terminal = require("toggleterm.terminal").Terminal
|
||||
local u = require("utils")
|
||||
local lazygit =
|
||||
Terminal:new(
|
||||
{
|
||||
cmd = "lazygit",
|
||||
dir = "git_dir",
|
||||
direction = "float",
|
||||
float_opts = {
|
||||
winblend = 0,
|
||||
border = "shadow"
|
||||
},
|
||||
on_open = function(term)
|
||||
vim.cmd("startinsert!")
|
||||
vim.api.nvim_buf_set_keymap(term.bufnr, "n", "q", "<cmd>close<CR>", {noremap = true, silent = true})
|
||||
end,
|
||||
on_close = function(term)
|
||||
Terminal:close()
|
||||
end
|
||||
}
|
||||
)
|
||||
|
||||
function _lazygit_toggle()
|
||||
lazygit:toggle()
|
||||
end
|
||||
|
||||
vim.api.nvim_set_keymap("n", "<C-g>", "<cmd>lua _lazygit_toggle()<CR>", {noremap = true, silent = true})
|
||||
|
||||
local pnpm =
|
||||
Terminal:new(
|
||||
{
|
||||
cmd = "pnpm dev",
|
||||
dir = "git_dir",
|
||||
size = 5,
|
||||
direction = "vertical",
|
||||
on_close = function(term)
|
||||
Terminal:close()
|
||||
end
|
||||
}
|
||||
)
|
||||
|
||||
function _pnpm_toggle()
|
||||
pnpm:toggle()
|
||||
end
|
||||
|
||||
vim.api.nvim_set_keymap("n", "<Leader>d", "<cmd>lua _pnpm_toggle()<CR>", {noremap = true, silent = true})
|
||||
|
||||
local nvimConfig =
|
||||
Terminal:new(
|
||||
{
|
||||
cmd = "cd $HOME/.dotfiles && nvim configs/init.lua && cd -",
|
||||
direction = "float",
|
||||
on_close = function(term)
|
||||
Terminal:close()
|
||||
u.ReloadConfig()
|
||||
end
|
||||
}
|
||||
)
|
||||
|
||||
function _nvimConfig_toggle()
|
||||
nvimConfig:toggle()
|
||||
end
|
||||
|
||||
vim.api.nvim_set_keymap("n", "<Leader><C-i>", "<cmd>lua _nvimConfig_toggle()<CR>", {noremap = true, silent = true})
|
||||
|
||||
require("toggleterm").setup {
|
||||
shade_terminals = true
|
||||
}
|
@@ -1,85 +0,0 @@
|
||||
local lorem = {}
|
||||
|
||||
local WORDS_IN_SENTENCE = {min = 5, max = 15}
|
||||
local SENTENCES_IN_PARAGRAPH = {min = 2, max = 7 }
|
||||
local PARAGRAPHS_IN_TEXT = {min = 2, max = 7 }
|
||||
|
||||
local function random_int(min, max)
|
||||
return math.random(min, max)
|
||||
end
|
||||
|
||||
local BASE_PHRASE = [[
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
||||
Suspendisse rutrum accumsan elit vel auctor.
|
||||
Praesent sit amet aliquam turpis.
|
||||
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae.
|
||||
Maecenas non erat ut elit sodales commodo.
|
||||
Nam gravida ipsum quis nulla tempus, quis pulvinar augue tristique.
|
||||
Nulla massa odio, imperdiet non ultricies tincidunt, viverra sed lorem.
|
||||
Nulla elementum sapien ut commodo aliquet.
|
||||
Pellentesque iaculis turpis tellus, eget laoreet augue condimentum vel.
|
||||
Quisque at risus rhoncus, facilisis tellus nec, tristique dolor.
|
||||
Maecenas cursus magna eget imperdiet laoreet.
|
||||
]]
|
||||
|
||||
local function get_words(phrase)
|
||||
local list = {}
|
||||
for word in phrase:gmatch('%a+') do
|
||||
table.insert(list, word:lower())
|
||||
end
|
||||
return list
|
||||
end
|
||||
|
||||
lorem.__index = lorem
|
||||
lorem._dict = get_words(BASE_PHRASE)
|
||||
|
||||
function lorem:generator(phrase)
|
||||
if type(phrase) ~= 'string' then
|
||||
error('First argument of lorem.generator should be a string', 2)
|
||||
end
|
||||
local g = {_dict = {}}
|
||||
for word in phrase:gmatch('%a+') do
|
||||
table.insert(g._dict, word:lower())
|
||||
end
|
||||
if #(g._dict) == 0 then
|
||||
error('String argument of lorem.generator should contain words', 2)
|
||||
end
|
||||
setmetatable(g, self)
|
||||
return g
|
||||
end
|
||||
|
||||
function lorem:word()
|
||||
return self._dict[random_int(1, #(self._dict))]
|
||||
end
|
||||
|
||||
function lorem:sentence()
|
||||
local n = random_int(WORDS_IN_SENTENCE.min, WORDS_IN_SENTENCE.max)
|
||||
local words = {}
|
||||
for i = 1, n do
|
||||
words[i] = self:word()
|
||||
end
|
||||
local s = table.concat(words, ' ')
|
||||
s = s .. "."
|
||||
s = s:sub(1, 1):upper() .. s:sub(2)
|
||||
return s
|
||||
end
|
||||
|
||||
function lorem:paragraph()
|
||||
local n = random_int(SENTENCES_IN_PARAGRAPH.min, SENTENCES_IN_PARAGRAPH.max)
|
||||
local sentences = {}
|
||||
for i = 1, n do
|
||||
sentences[i] = self:sentence()
|
||||
end
|
||||
return table.concat(sentences, ' ')
|
||||
end
|
||||
|
||||
function lorem:text()
|
||||
local n = random_int(PARAGRAPHS_IN_TEXT.min, PARAGRAPHS_IN_TEXT.max)
|
||||
local paragraphs = {}
|
||||
for i = 1, n do
|
||||
paragraphs[i] = self:paragraph()
|
||||
end
|
||||
return table.concat(paragraphs, '\n')
|
||||
end
|
||||
|
||||
return lorem
|
35
configs/nvim/lua/utils/theme-reloader.lua
Normal file
35
configs/nvim/lua/utils/theme-reloader.lua
Normal file
@@ -0,0 +1,35 @@
|
||||
-- see if the file exists
|
||||
local function file_exists(file)
|
||||
local f = io.open(file, "rb")
|
||||
if f then f:close() end
|
||||
return f ~= nil
|
||||
end
|
||||
|
||||
-- get all lines from a file, returns an empty
|
||||
-- list/table if the file does not exist
|
||||
local function line_from(file)
|
||||
if not file_exists(file) then return {} end
|
||||
local f = io.open(file) -- 'r' is unnecessary because it's a default value.
|
||||
local line = f:read() -- '*l' is unnecessary because it's a default value.
|
||||
f:close()
|
||||
return line;
|
||||
end
|
||||
|
||||
local filePath = os.getenv("HOME").."/.cache/dark-mode";
|
||||
local function updateTheme()
|
||||
local line = line_from(filePath);
|
||||
if line then
|
||||
local dark = string.find(line, "dark");
|
||||
if dark then
|
||||
vim.cmd("colorscheme nightfox")
|
||||
else
|
||||
vim.cmd("colorscheme dayfox")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
updateTheme()
|
||||
local w = vim.loop.new_fs_event()
|
||||
w:start(filePath, {}, vim.schedule_wrap(updateTheme))
|
Reference in New Issue
Block a user