diff --git a/backup b/backup new file mode 160000 index 00000000..7d954aef --- /dev/null +++ b/backup @@ -0,0 +1 @@ +Subproject commit 7d954aef6198f4b244517c259dbcdc6a746df7e1 diff --git a/init.lua b/init.lua index 3784c1a1..255fbedf 100644 --- a/init.lua +++ b/init.lua @@ -1,97 +1,9 @@ ---[[ - -===================================================================== -==================== READ THIS BEFORE CONTINUING ==================== -===================================================================== -======== .-----. ======== -======== .----------------------. | === | ======== -======== |.-""""""""""""""""""-.| |-----| ======== -======== || || | === | ======== -======== || KICKSTART.NVIM || |-----| ======== -======== || || | === | ======== -======== || || |-----| ======== -======== ||:Tutor || |:::::| ======== -======== |'-..................-'| |____o| ======== -======== `"")----------------(""` ___________ ======== -======== /::::::::::| |::::::::::\ \ no mouse \ ======== -======== /:::========| |==hjkl==:::\ \ required \ ======== -======== '""""""""""""' '""""""""""""' '""""""""""' ======== -======== ======== -===================================================================== -===================================================================== - -What is Kickstart? - - Kickstart.nvim is *not* a distribution. - - Kickstart.nvim is a starting point for your own configuration. - The goal is that you can read every line of code, top-to-bottom, understand - what your configuration is doing, and modify it to suit your needs. - - Once you've done that, you can start exploring, configuring and tinkering to - make Neovim your own! That might mean leaving Kickstart just the way it is for a while - or immediately breaking it into modular pieces. It's up to you! - - If you don't know anything about Lua, I recommend taking some time to read through - a guide. One possible example which will only take 10-15 minutes: - - https://learnxinyminutes.com/docs/lua/ - - After understanding a bit more about Lua, you can use `:help lua-guide` as a - reference for how Neovim integrates Lua. - - :help lua-guide - - (or HTML version): https://neovim.io/doc/user/lua-guide.html - -Kickstart Guide: - - TODO: The very first thing you should do is to run the command `:Tutor` in Neovim. - - If you don't know what this means, type the following: - - - - : - - Tutor - - - - (If you already know the Neovim basics, you can skip this step.) - - Once you've completed that, you can continue working through **AND READING** the rest - of the kickstart init.lua. - - Next, run AND READ `:help`. - This will open up a help window with some basic information - about reading, navigating and searching the builtin help documentation. - - This should be the first place you go to look when you're stuck or confused - with something. It's one of my favorite Neovim features. - - MOST IMPORTANTLY, we provide a keymap "sh" to [s]earch the [h]elp documentation, - which is very useful when you're not exactly sure of what you're looking for. - - I have left several `:help X` comments throughout the init.lua - These are hints about where to find more information about the relevant settings, - plugins or Neovim features used in Kickstart. - - NOTE: Look for lines like this - - Throughout the file. These are for you, the reader, to help you understand what is happening. - Feel free to delete them once you know what you're doing, but they should serve as a guide - for when you are first encountering a few different constructs in your Neovim config. - -If you experience any errors while trying to install kickstart, run `:checkhealth` for more info. - -I hope you enjoy your Neovim journey, -- TJ - -P.S. You can delete this when you're done too. It's your config now! :) ---]] - --- Set as the leader key --- See `:help mapleader` -- NOTE: Must happen before plugins are loaded (otherwise wrong leader will be used) 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 ]] require 'options' diff --git a/lua/custom/plugins/float-terminal.lua b/lua/custom/plugins/float-terminal.lua new file mode 100644 index 00000000..bb76b230 --- /dev/null +++ b/lua/custom/plugins/float-terminal.lua @@ -0,0 +1,59 @@ +vim.keymap.set('t', '', '') + +local state = { + floating = { + buf = -1, + win = -1, + }, +} + +local function create_floating_window(opts) + opts = opts or {} + local width = opts.width or math.floor(vim.o.columns * 0.8) + local height = opts.height or math.floor(vim.o.lines * 0.8) + + -- Calculate the position to center the window + local col = math.floor((vim.o.columns - width) / 2) + local row = math.floor((vim.o.lines - height) / 2) + + -- Create a buffer + local buf = nil + if vim.api.nvim_buf_is_valid(opts.buf) then + buf = opts.buf + else + buf = vim.api.nvim_create_buf(false, true) -- No file, scratch buffer + end + + -- Define window configuration + local win_config = { + relative = 'editor', + width = width, + height = height, + col = col, + row = row, + style = 'minimal', -- No borders or extra UI elements + border = 'rounded', + } + + -- Create the floating window + local win = vim.api.nvim_open_win(buf, true, win_config) + + return { buf = buf, win = win } +end + +local toggle_terminal = function() + if not vim.api.nvim_win_is_valid(state.floating.win) then + state.floating = create_floating_window { buf = state.floating.buf } + if vim.bo[state.floating.buf].buftype ~= 'terminal' then + vim.cmd.terminal() + end + else + vim.api.nvim_win_hide(state.floating.win) + end +end +vim.keymap.set({ 't', 'n' }, 'tt', toggle_terminal) + +-- Example usage: +-- Create a floating window with default dimensions +vim.api.nvim_create_user_command('Floaterminal', toggle_terminal, {}) +return {} diff --git a/lua/custom/plugins/init.lua b/lua/custom/plugins/init.lua index be0eb9d8..c36ce473 100644 --- a/lua/custom/plugins/init.lua +++ b/lua/custom/plugins/init.lua @@ -1,5 +1,37 @@ --- You can add your own plugins here or in other files in this directory! --- I promise not to create any merge conflicts in this directory :) --- --- See the kickstart.nvim README for more information +vim.g.netrw_banner = 0 -- disable topbar +-- vim.g.netrw_browse_split = 4 -- open in prior buffer/window +-- -- vim.g.netrw_altv = 1 -- open fle splits to the right +vim.g.netrw_liststyle = 3 -- tree view +-- vim.g.netrw_winsize = 25 -- length of the window +vim.diagnostic.config { + virtual_text = { + -- source = "always", -- Or "if_many" + prefix = '●', -- Could be '■', '▎', 'x' + }, + severity_sort = true, + float = { + source = true, -- Or "if_many" + }, +} + +vim.wo.foldmethod = 'expr' +vim.wo.foldexpr = 'v:lua.vim.treesitter.foldexpr()' +vim.wo.foldenable = false + +-- copy current buffer path to "+ +vim.keymap.set('n', 'yb', 'let @+ = expand("%")', { desc = 'yank to plus register current relative path' }) + +-- https://devpad.net/blog/upgrading-nvim-v010-to-v011 +vim.opt.completeopt = { 'menuone', 'fuzzy', 'noinsert', 'preview' } +vim.o.omnifunc = 'v:lua.vim.lsp.omnifunc' + +-- vim.diagnostic.config { +-- virtual_text = false, +-- } +-- never use tabs +vim.o.expandtab = true + +local set = vim.opt_local +set.shiftwidth = 2 +vim.o.shiftwidth = 2 return {} diff --git a/lua/custom/plugins/lsp-lines.lua b/lua/custom/plugins/lsp-lines.lua new file mode 100644 index 00000000..3bbd306f --- /dev/null +++ b/lua/custom/plugins/lsp-lines.lua @@ -0,0 +1,6 @@ +return { + 'https://git.sr.ht/~whynothugo/lsp_lines.nvim', + config = function() + require('lsp_lines').setup() + end, +} diff --git a/lua/kickstart/plugins/lspconfig.lua b/lua/kickstart/plugins/lspconfig.lua index 6532757d..1bb01b91 100644 --- a/lua/kickstart/plugins/lspconfig.lua +++ b/lua/kickstart/plugins/lspconfig.lua @@ -208,19 +208,19 @@ return { -- - 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 = {}, - -- ... 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 = {}, - -- - + clangd = {}, + helm_ls = {}, + jsonls = { + init_options = { + provideFormatter = true, + }, + }, + cssls = {}, + eslint = {}, + bashls = {}, + vtsls = {}, + nginx_language_server = {}, + gitlab_ci_ls = {}, lua_ls = { -- cmd = { ... }, -- filetypes = { ... }, diff --git a/lua/kickstart/plugins/telescope.lua b/lua/kickstart/plugins/telescope.lua index bb74bf10..6a33d8db 100644 --- a/lua/kickstart/plugins/telescope.lua +++ b/lua/kickstart/plugins/telescope.lua @@ -1,10 +1,3 @@ --- NOTE: Plugins can specify dependencies. --- --- The dependencies are proper plugin specifications as well - anything --- you do for a plugin at the top level, you can do for a dependency. --- --- Use the `dependencies` key to specify the dependencies of a particular plugin - return { { -- Fuzzy Finder (files, lsp, etc) 'nvim-telescope/telescope.nvim', @@ -30,17 +23,6 @@ return { { 'nvim-tree/nvim-web-devicons', enabled = vim.g.have_nerd_font }, }, config = function() - -- Telescope is a fuzzy finder that comes with a lot of different things that - -- it can fuzzy find! It's more than just a "file finder", it can search - -- many different aspects of Neovim, your workspace, LSP, and more! - -- - -- The easiest way to use Telescope, is to start by doing something like: - -- :Telescope help_tags - -- - -- After running this command, a window will open up and you're able to - -- type in the prompt window. You'll see a list of `help_tags` options and - -- a corresponding preview of the help. - -- -- Two important keymaps to use while in Telescope are: -- - Insert mode: -- - Normal mode: ? @@ -49,18 +31,31 @@ return { -- 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 - -- All the info you're looking for is in `:help telescope.setup()` - -- - -- defaults = { - -- mappings = { - -- i = { [''] = 'to_fuzzy_refine' }, - -- }, - -- }, - -- pickers = {} + defaults = { + file_ignore_patterns = { + '^.git/', + '^node_modules/', + }, + vimgrep_arguments = { + 'rg', + '--color=never', + '--no-heading', + '--with-filename', + '--line-number', + '--column', + '--smart-case', + '--hidden', -- Busca en archivos ocultos + '--glob', + '!.git/', -- Excluye .git pero no .gitlab + }, + }, + -- show hidden files, does it respect config for whatever command is using? + pickers = { + find_files = { + hidden = true, + }, + }, extensions = { ['ui-select'] = { require('telescope.themes').get_dropdown(), diff --git a/lua/lazy-plugins.lua b/lua/lazy-plugins.lua index 9f3ca2ac..5d58ec1d 100644 --- a/lua/lazy-plugins.lua +++ b/lua/lazy-plugins.lua @@ -62,7 +62,7 @@ require('lazy').setup({ -- 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. - -- { import = 'custom.plugins' }, + { import = 'custom.plugins' }, -- -- For additional information with loading, sourcing and examples see `:help lazy.nvim-🔌-plugin-spec` -- Or use telescope!