mirror of
https://github.com/rodneybbjr/kickstart.nvim.git
synced 2025-12-19 01:57:31 -05:00
Compare commits
12 Commits
a9c0df60a4
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0e5cf0a52b | ||
|
|
c5884fdcd6 | ||
|
|
c3a48abd86 | ||
|
|
c063d831a1 | ||
|
|
17aa0007e3 | ||
|
|
3338d39206 | ||
|
|
6ba2408cdf | ||
|
|
f5a9f9cdc6 | ||
|
|
fb73617653 | ||
|
|
c92ea7ca97 | ||
|
|
2b2f0f8364 | ||
|
|
76cb865e4f |
@@ -23,7 +23,8 @@ If you are experiencing issues, please make sure you have the latest versions.
|
||||
|
||||
External Requirements:
|
||||
- Basic utils: `git`, `make`, `unzip`, C Compiler (`gcc`)
|
||||
- [ripgrep](https://github.com/BurntSushi/ripgrep#installation)
|
||||
- [ripgrep](https://github.com/BurntSushi/ripgrep#installation),
|
||||
[fd-find](https://github.com/sharkdp/fd#installation)
|
||||
- Clipboard tool (xclip/xsel/win32yank or other depending on the platform)
|
||||
- A [Nerd Font](https://www.nerdfonts.com/): optional, provides various icons
|
||||
- if you have it set `vim.g.have_nerd_font` in `init.lua` to true
|
||||
|
||||
105
init.lua
105
init.lua
@@ -94,72 +94,77 @@ vim.g.maplocalleader = ' '
|
||||
vim.g.have_nerd_font = true
|
||||
|
||||
-- [[ Setting options ]]
|
||||
-- See `:help vim.opt`
|
||||
-- See `:help vim.o`
|
||||
-- NOTE: You can change these options as you wish!
|
||||
-- For more options, you can see `:help option-list`
|
||||
|
||||
-- Make line numbers default
|
||||
vim.opt.number = true
|
||||
vim.o.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.o.relativenumber = true
|
||||
|
||||
-- Enable mouse mode, can be useful for resizing splits for example!
|
||||
vim.opt.mouse = 'a'
|
||||
vim.o.mouse = 'a'
|
||||
|
||||
-- Don't show the mode, since it's already in the status line
|
||||
vim.opt.showmode = false
|
||||
vim.o.showmode = false
|
||||
|
||||
-- Sync clipboard between OS and Neovim.
|
||||
-- Schedule the setting after `UiEnter` because it can increase startup-time.
|
||||
-- Remove this option if you want your OS clipboard to remain independent.
|
||||
-- See `:help 'clipboard'`
|
||||
vim.schedule(function()
|
||||
vim.opt.clipboard = 'unnamedplus'
|
||||
vim.o.clipboard = 'unnamedplus'
|
||||
end)
|
||||
|
||||
-- Enable break indent
|
||||
vim.opt.breakindent = true
|
||||
vim.o.breakindent = true
|
||||
|
||||
-- Save undo history
|
||||
vim.opt.undofile = true
|
||||
vim.o.undofile = true
|
||||
|
||||
-- Case-insensitive searching UNLESS \C or one or more capital letters in the search term
|
||||
vim.opt.ignorecase = true
|
||||
vim.opt.smartcase = true
|
||||
vim.o.ignorecase = true
|
||||
vim.o.smartcase = true
|
||||
|
||||
-- Keep signcolumn on by default
|
||||
vim.opt.signcolumn = 'yes'
|
||||
vim.o.signcolumn = 'yes'
|
||||
|
||||
-- Decrease update time
|
||||
vim.opt.updatetime = 250
|
||||
vim.o.updatetime = 250
|
||||
|
||||
-- Decrease mapped sequence wait time
|
||||
vim.opt.timeoutlen = 300
|
||||
vim.o.timeoutlen = 300
|
||||
|
||||
-- Configure how new splits should be opened
|
||||
vim.opt.splitright = true
|
||||
vim.opt.splitbelow = true
|
||||
vim.o.splitright = true
|
||||
vim.o.splitbelow = true
|
||||
|
||||
-- Sets how neovim will display certain whitespace characters in the editor.
|
||||
-- See `:help 'list'`
|
||||
-- and `:help 'listchars'`
|
||||
vim.opt.list = true
|
||||
--
|
||||
-- Notice listchars is set using `vim.opt` instead of `vim.o`.
|
||||
-- It is very similar to `vim.o` but offers an interface for conveniently interacting with tables.
|
||||
-- See `:help lua-options`
|
||||
-- and `:help lua-options-guide`
|
||||
vim.o.list = true
|
||||
vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '␣' }
|
||||
|
||||
-- Preview substitutions live, as you type!
|
||||
vim.opt.inccommand = 'split'
|
||||
vim.o.inccommand = 'split'
|
||||
|
||||
-- Show which line your cursor is on
|
||||
vim.opt.cursorline = true
|
||||
vim.o.cursorline = true
|
||||
|
||||
-- Minimal number of screen lines to keep above and below the cursor.
|
||||
vim.opt.scrolloff = 10
|
||||
vim.o.scrolloff = 10
|
||||
|
||||
-- if performing an operation that would fail due to unsaved changes in the buffer (like `:q`),
|
||||
-- instead raise a dialog asking if you wish to save the current file(s)
|
||||
-- See `:help 'confirm'`
|
||||
vim.opt.confirm = true
|
||||
vim.o.confirm = true
|
||||
|
||||
-- [[ Basic Keymaps ]]
|
||||
-- See `:help vim.keymap.set()`
|
||||
@@ -205,12 +210,12 @@ vim.keymap.set('n', '<C-k>', '<C-w><C-k>', { desc = 'Move focus to the upper win
|
||||
|
||||
-- Highlight when yanking (copying) text
|
||||
-- Try it with `yap` in normal mode
|
||||
-- See `:help vim.highlight.on_yank()`
|
||||
-- See `:help vim.hl.on_yank()`
|
||||
vim.api.nvim_create_autocmd('TextYankPost', {
|
||||
desc = 'Highlight when yanking (copying) text',
|
||||
group = vim.api.nvim_create_augroup('kickstart-highlight-yank', { clear = true }),
|
||||
callback = function()
|
||||
vim.highlight.on_yank()
|
||||
vim.hl.on_yank()
|
||||
end,
|
||||
})
|
||||
|
||||
@@ -223,8 +228,11 @@ if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||
if vim.v.shell_error ~= 0 then
|
||||
error('Error cloning lazy.nvim:\n' .. out)
|
||||
end
|
||||
end ---@diagnostic disable-next-line: undefined-field
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
end
|
||||
|
||||
---@type vim.Option
|
||||
local rtp = vim.opt.rtp
|
||||
rtp:prepend(lazypath)
|
||||
|
||||
-- [[ Configure and install plugins ]]
|
||||
--
|
||||
@@ -239,7 +247,7 @@ vim.opt.rtp:prepend(lazypath)
|
||||
-- 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
|
||||
'NMAC427/guess-indent.nvim', -- Detect tabstop and shiftwidth automatically
|
||||
|
||||
-- NOTE: Plugins can also be added by using a table,
|
||||
-- with the first argument being the link and the following
|
||||
@@ -295,7 +303,7 @@ require('lazy').setup({
|
||||
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
|
||||
-- this setting is independent of vim.o.timeoutlen
|
||||
delay = 0,
|
||||
icons = {
|
||||
-- set icon mappings to true if you have a Nerd Font
|
||||
@@ -474,8 +482,8 @@ require('lazy').setup({
|
||||
-- Automatically install LSPs and related tools to stdpath for Neovim
|
||||
-- Mason must be loaded before its dependents so we need to set it up here.
|
||||
-- NOTE: `opts = {}` is the same as calling `require('mason').setup({})`
|
||||
{ 'williamboman/mason.nvim', opts = {} },
|
||||
'williamboman/mason-lspconfig.nvim',
|
||||
{ 'mason-org/mason.nvim', opts = {} },
|
||||
'mason-org/mason-lspconfig.nvim',
|
||||
'WhoIsSethDaniel/mason-tool-installer.nvim',
|
||||
|
||||
-- Useful status updates for LSP.
|
||||
@@ -663,17 +671,17 @@ 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 = {},
|
||||
clangd = {},
|
||||
gopls = {},
|
||||
-- pyright = {},
|
||||
-- rust_analyzer = {},
|
||||
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:
|
||||
-- https://github.com/pmizio/typescript-tools.nvim
|
||||
--
|
||||
-- But for many setups, the LSP (`ts_ls`) will work just fine
|
||||
-- ts_ls = {},
|
||||
ts_ls = {},
|
||||
--
|
||||
|
||||
lua_ls = {
|
||||
@@ -887,6 +895,39 @@ require('lazy').setup({
|
||||
-- By default, you may press `<c-space>` to show the documentation.
|
||||
-- Optionally, set `auto_show = true` to show the documentation after a delay.
|
||||
documentation = { auto_show = false, auto_show_delay_ms = 500 },
|
||||
menu = {
|
||||
draw = {
|
||||
components = {
|
||||
-- customize the drawing of kind icons
|
||||
kind_icon = {
|
||||
text = function(ctx)
|
||||
-- default kind icon
|
||||
local icon = ctx.kind_icon
|
||||
-- if LSP source, check for color derived from documentation
|
||||
if ctx.item.source_name == "LSP" then
|
||||
local color_item = require("nvim-highlight-colors").format(ctx.item.documentation, { kind = ctx.kind })
|
||||
if color_item and color_item.abbr ~= "" then
|
||||
icon = color_item.abbr
|
||||
end
|
||||
end
|
||||
return icon .. ctx.icon_gap
|
||||
end,
|
||||
highlight = function(ctx)
|
||||
-- default highlight group
|
||||
local highlight = "BlinkCmpKind" .. ctx.kind
|
||||
-- if LSP source, check for color derived from documentation
|
||||
if ctx.item.source_name == "LSP" then
|
||||
local color_item = require("nvim-highlight-colors").format(ctx.item.documentation, { kind = ctx.kind })
|
||||
if color_item and color_item.abbr_hl_group then
|
||||
highlight = color_item.abbr_hl_group
|
||||
end
|
||||
end
|
||||
return highlight
|
||||
end,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
sources = {
|
||||
|
||||
67
lua/custom/plugins/highlight.lua
Normal file
67
lua/custom/plugins/highlight.lua
Normal file
@@ -0,0 +1,67 @@
|
||||
return {
|
||||
{
|
||||
'brenoprata10/nvim-highlight-colors',
|
||||
opts = {
|
||||
---Render style
|
||||
---@usage 'background'|'foreground'|'virtual'
|
||||
render = 'background',
|
||||
|
||||
---Set virtual symbol (requires render to be set to 'virtual')
|
||||
virtual_symbol = '■',
|
||||
|
||||
---Set virtual symbol suffix (defaults to '')
|
||||
virtual_symbol_prefix = '',
|
||||
|
||||
---Set virtual symbol suffix (defaults to ' ')
|
||||
virtual_symbol_suffix = ' ',
|
||||
|
||||
---Set virtual symbol position()
|
||||
---@usage 'inline'|'eol'|'eow'
|
||||
---inline mimics VS Code style
|
||||
---eol stands for `end of column` - Recommended to set `virtual_symbol_suffix = ''` when used.
|
||||
---eow stands for `end of word` - Recommended to set `virtual_symbol_prefix = ' ' and virtual_symbol_suffix = ''` when used.
|
||||
virtual_symbol_position = 'inline',
|
||||
|
||||
---Highlight hex colors, e.g. '#FFFFFF'
|
||||
enable_hex = true,
|
||||
|
||||
---Highlight short hex colors e.g. '#fff'
|
||||
enable_short_hex = true,
|
||||
|
||||
---Highlight rgb colors, e.g. 'rgb(0 0 0)'
|
||||
enable_rgb = true,
|
||||
|
||||
---Highlight hsl colors, e.g. 'hsl(150deg 30% 40%)'
|
||||
enable_hsl = true,
|
||||
|
||||
---Highlight ansi colors, e.g '\033[0;34m'
|
||||
enable_ansi = true,
|
||||
|
||||
-- Highlight hsl colors without function, e.g. '--foreground: 0 69% 69%;'
|
||||
enable_hsl_without_function = true,
|
||||
|
||||
---Highlight CSS variables, e.g. 'var(--testing-color)'
|
||||
enable_var_usage = true,
|
||||
|
||||
---Highlight named colors, e.g. 'green'
|
||||
enable_named_colors = true,
|
||||
|
||||
---Highlight tailwind colors, e.g. 'bg-blue-500'
|
||||
enable_tailwind = true,
|
||||
|
||||
---Set custom colors
|
||||
---Label must be properly escaped with '%' to adhere to `string.gmatch`
|
||||
--- :help string.gmatch
|
||||
custom_colors = {
|
||||
{ label = '%-%-theme%-primary%-color', color = '#0f1219' },
|
||||
{ label = '%-%-theme%-secondary%-color', color = '#5a5d64' },
|
||||
},
|
||||
|
||||
-- Exclude filetypes or buftypes from highlighting e.g. 'exclude_buftypes = {'text'}'
|
||||
exclude_filetypes = {},
|
||||
exclude_buftypes = {},
|
||||
-- Exclude buffer from highlighting e.g. 'exclude_buffer = function(bufnr) return vim.fn.getfsize(vim.api.nvim_buf_get_name(bufnr)) > 1000000 end'
|
||||
exclude_buffer = function(bufnr) end
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -4,12 +4,13 @@
|
||||
-- See the kickstart.nvim README for more information
|
||||
-- local job_id = 0
|
||||
|
||||
-- vim.g.termguicolors = true
|
||||
return {
|
||||
-- vim.opt_local.shiftwidth = 2
|
||||
-- vim.opt.clipboard = 'unnamedplus'
|
||||
-- vim.opt_local.number = true
|
||||
-- vim.opt_local.relativenummber = true
|
||||
-- vim.g.python3_host_prog = vim.fs.joinpatth(vim.fn.stdpath('config'), '.pynvim/bin/python'),
|
||||
vim.api.nvim_set_option_value('shiftwidth', 2, { scope = 'local' }),
|
||||
vim.api.nvim_set_option_value('number', true, { scope = 'local' }),
|
||||
-- vim.api.nvim_set_option_value('relativenumber', true, { scope = 'local' }),
|
||||
vim.api.nvim_set_option_value('termguicolors', true, { scope = 'global' }),
|
||||
-- vim.api.nvim_set_option_value('clipboard', 'unnamedplus', { scope = 'global' }),
|
||||
vim.api.nvim_set_var('python3_host_prog', vim.fs.joinpath(vim.fn.stdpath 'config', '.pynvim/bin/python')),
|
||||
|
||||
vim.keymap.set('n', '<space>rf', '<cmd>source %<CR>', { desc = '[R]eload [F]ile' }),
|
||||
|
||||
111
lua/custom/plugins/universal_clip.lua
Normal file
111
lua/custom/plugins/universal_clip.lua
Normal file
@@ -0,0 +1,111 @@
|
||||
return {
|
||||
{
|
||||
'swaits/universal-clipboard.nvim',
|
||||
opts = {
|
||||
-- Whether to log stuff to the vim console
|
||||
verbose = false,
|
||||
|
||||
-- Copy/paste tools to check for
|
||||
tools = {
|
||||
-- macOS clipboard
|
||||
{
|
||||
name = "pbcopy",
|
||||
detect = function()
|
||||
return vim.fn.executable("pbcopy") == 1 and vim.fn.executable("pbpaste") == 1
|
||||
end,
|
||||
commands = {
|
||||
copy = "pbcopy",
|
||||
paste = "pbpaste",
|
||||
},
|
||||
},
|
||||
-- Wayland and wl-copy/wl-paste
|
||||
{
|
||||
name = "wl-clipboard",
|
||||
detect = function()
|
||||
local wayland_display = os.getenv("WAYLAND_DISPLAY")
|
||||
local wayland_runtime = os.getenv("XDG_RUNTIME_DIR")
|
||||
local socket_path = (wayland_runtime or "") .. "/" .. (wayland_display or "")
|
||||
return (vim.fn.executable("wl-copy") == 1)
|
||||
and (vim.fn.executable("wl-paste") == 1)
|
||||
and wayland_display ~= ""
|
||||
and (vim.fn.filereadable(socket_path) == 1)
|
||||
end,
|
||||
commands = {
|
||||
copy = "wl-copy",
|
||||
paste = "wl-paste --no-newline",
|
||||
},
|
||||
},
|
||||
-- Alternative Wayland tools
|
||||
{
|
||||
name = "waycopy",
|
||||
detect = function()
|
||||
local wayland_display = os.getenv("WAYLAND_DISPLAY")
|
||||
return vim.fn.executable("waycopy") == 1
|
||||
and vim.fn.executable("waypaste") == 1
|
||||
and wayland_display ~= nil
|
||||
end,
|
||||
commands = {
|
||||
copy = "waycopy",
|
||||
paste = "waypaste --no-newline",
|
||||
},
|
||||
},
|
||||
-- X11 and xclip
|
||||
{
|
||||
name = "xclip",
|
||||
detect = "xclip", -- Just a string, means "check if `xclip` is executable"
|
||||
commands = {
|
||||
copy = "xclip -selection clipboard",
|
||||
paste = "xclip -selection clipboard -o",
|
||||
},
|
||||
},
|
||||
-- X11 and xsel
|
||||
{
|
||||
name = "xsel",
|
||||
detect = "xsel",
|
||||
commands = {
|
||||
copy = "xsel --clipboard --input",
|
||||
paste = "xsel --clipboard --output",
|
||||
},
|
||||
},
|
||||
-- tmux clipboard
|
||||
{
|
||||
name = "tmux",
|
||||
detect = function()
|
||||
return os.getenv("TMUX") ~= nil and vim.fn.executable("tmux") == 1
|
||||
end,
|
||||
commands = {
|
||||
copy = "tmux load-buffer -",
|
||||
paste = "tmux save-buffer -",
|
||||
},
|
||||
},
|
||||
-- Lemonade (SSH)
|
||||
{
|
||||
name = "lemonade",
|
||||
detect = "lemonade",
|
||||
commands = {
|
||||
copy = "lemonade copy",
|
||||
paste = "lemonade paste",
|
||||
},
|
||||
},
|
||||
-- DoIt client (SSH)
|
||||
{
|
||||
name = "doitclient",
|
||||
detect = "doitclient",
|
||||
commands = {
|
||||
copy = "doitclient wclip",
|
||||
paste = "doitclient rclip",
|
||||
},
|
||||
},
|
||||
-- Windows win32yank
|
||||
{
|
||||
name = "win32yank",
|
||||
detect = "win32yank.exe",
|
||||
commands = {
|
||||
copy = "win32yank.exe -i --crlf",
|
||||
paste = "win32yank.exe -o --lf",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -18,7 +18,7 @@ return {
|
||||
'nvim-neotest/nvim-nio',
|
||||
|
||||
-- Installs the debug adapters for you
|
||||
'williamboman/mason.nvim',
|
||||
'mason-org/mason.nvim',
|
||||
'jay-babu/mason-nvim-dap.nvim',
|
||||
|
||||
-- Add your own debuggers here
|
||||
|
||||
@@ -50,7 +50,7 @@ return {
|
||||
-- Only run the linter in buffers that you can modify in order to
|
||||
-- avoid superfluous noise, notably within the handy LSP pop-ups that
|
||||
-- describe the hovered symbol using Markdown.
|
||||
if vim.opt_local.modifiable:get() then
|
||||
if vim.bo.modifiable then
|
||||
lint.try_lint()
|
||||
end
|
||||
end,
|
||||
|
||||
@@ -9,7 +9,7 @@ return {
|
||||
'nvim-tree/nvim-web-devicons', -- not strictly required, but recommended
|
||||
'MunifTanjim/nui.nvim',
|
||||
},
|
||||
cmd = 'Neotree',
|
||||
lazy = false,
|
||||
keys = {
|
||||
{ '\\', ':Neotree reveal<CR>', desc = 'NeoTree reveal', silent = true },
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user