diff --git a/init.lua b/init.lua index 81c154bb..535258c6 100644 --- a/init.lua +++ b/init.lua @@ -1,92 +1,3 @@ ---[[ - -===================================================================== -==================== 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 = ' ' diff --git a/lua/custom/plugins/cmp.lua b/lua/custom/plugins/cmp.lua index 74228c04..7ed733be 100644 --- a/lua/custom/plugins/cmp.lua +++ b/lua/custom/plugins/cmp.lua @@ -76,7 +76,10 @@ return { -- Default list of enabled providers defined so that you can extend it -- elsewhere in your config, without redefining it, due to `opts_extend` sources = { - default = { 'lsp', 'path', 'snippets', 'buffer' }, + default = { 'lsp', 'path', 'snippets', 'buffer', 'codeium' }, + providers = { + codeium = { name = 'Codeium', module = 'codeium.blink', async = true }, + }, }, -- (Default) Rust fuzzy matcher for typo resistance and significantly better performance diff --git a/lua/custom/plugins/codeassistant.lua b/lua/custom/plugins/codeassistant.lua new file mode 100644 index 00000000..356e4c90 --- /dev/null +++ b/lua/custom/plugins/codeassistant.lua @@ -0,0 +1,53 @@ +return { + { + 'olimorris/codecompanion.nvim', + dependencies = { + 'nvim-lua/plenary.nvim', + 'nvim-treesitter/nvim-treesitter', + }, + opts = { + adapters = { + http = { + anthropic = function() + return require('codecompanion.adapters').extend('anthropic', { + env = { + api_key = os.getenv 'ANTHROPIC_API_KEY', + model = 'claude-sonnet-4-20250514', + }, + }) + end, + }, + }, + strategies = { + chat = { adapter = 'anthropic' }, + inline = { adapter = 'anthropic' }, + agent = { adapter = 'anthropic' }, + }, + display = { + action_palette = { + provider = 'snacks', + opts = { + show_default_actions = true, -- Show the default actions in the action palette? + show_default_prompt_library = true, -- Show the default prompt library in the action palette? + title = 'CodeCompanion actions', -- The title of the action palette + }, + }, + }, + -- NOTE: The log_level is in `opts.opts` + opts = { + log_level = 'DEBUG', -- or "TRACE" + }, + }, + }, + { + 'Exafunction/windsurf.nvim', + dependencies = { + 'nvim-lua/plenary.nvim', + 'hrsh7th/nvim-cmp', + }, + config = function() + require('codeium').setup {} + vim.keymap.set('n', 'tc', ':Codeium Toggle', { desc = 'Toggle Codeium' }) + end, + }, +} diff --git a/lua/custom/plugins/lspconfig.lua b/lua/custom/plugins/lspconfig.lua index dac48560..eee5798a 100644 --- a/lua/custom/plugins/lspconfig.lua +++ b/lua/custom/plugins/lspconfig.lua @@ -17,12 +17,11 @@ return { }, }, config = function(_, opts) - local lspconfig = require 'lspconfig' for server, config in pairs(opts.servers) do -- passing config.capabilities to blink.cmp merges with the capabilities in your -- `opts[server].capabilities, if you've defined it config.capabilities = require('blink.cmp').get_lsp_capabilities(config.capabilities) - lspconfig[server].setup(config) + vim.lsp.config(server, config) end end, }