feat: Add plugin olimorris/codecompanion.nvim
This commit is contained in:
		
							
								
								
									
										62
									
								
								lua/plugins/codecompanion.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								lua/plugins/codecompanion.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,62 @@
 | 
			
		||||
local prefix = "<Leader>A"
 | 
			
		||||
 | 
			
		||||
---@type LazySpec
 | 
			
		||||
return {
 | 
			
		||||
  {
 | 
			
		||||
    "olimorris/codecompanion.nvim",
 | 
			
		||||
    dependencies = {
 | 
			
		||||
      "nvim-lua/plenary.nvim",
 | 
			
		||||
      "nvim-treesitter/nvim-treesitter",
 | 
			
		||||
      {
 | 
			
		||||
        "AstroNvim/astrocore",
 | 
			
		||||
        ---@param opts AstroCoreOpts
 | 
			
		||||
        opts = function(_, opts)
 | 
			
		||||
          if not opts.mappings then opts.mappings = {} end
 | 
			
		||||
 | 
			
		||||
          opts.mappings.n[prefix] = { desc = require("astroui").get_icon("CodeCompanion", 1, true) .. "CodeCompanion" }
 | 
			
		||||
          opts.mappings.v[prefix] = { desc = require("astroui").get_icon("CodeCompanion", 1, true) .. "CodeCompanion" }
 | 
			
		||||
 | 
			
		||||
          opts.mappings.n[prefix .. "c"] = { "<cmd>CodeCompanionChat Toggle<cr>", desc = "Toggle chat" }
 | 
			
		||||
          opts.mappings.v[prefix .. "c"] = { "<cmd>CodeCompanionChat Toggle<cr>", desc = "Toggle chat" }
 | 
			
		||||
 | 
			
		||||
          opts.mappings.n[prefix .. "p"] = { "<cmd>CodeCompanionActions<cr>", desc = "Open action palette" }
 | 
			
		||||
          opts.mappings.v[prefix .. "p"] = { "<cmd>CodeCompanionActions<cr>", desc = "Open action palette" }
 | 
			
		||||
 | 
			
		||||
          opts.mappings.n[prefix .. "q"] = { "<cmd>CodeCompanion<cr>", desc = "Open inline assistant" }
 | 
			
		||||
          opts.mappings.v[prefix .. "q"] = { "<cmd>CodeCompanion<cr>", desc = "Open inline assistant" }
 | 
			
		||||
 | 
			
		||||
          opts.mappings.v[prefix .. "a"] = { "<cmd>CodeCompanionChat Add<cr>", desc = "Add selection to chat" }
 | 
			
		||||
 | 
			
		||||
          -- Expand cc to CodeCompanion in cmdline mode
 | 
			
		||||
          vim.cmd [[cab cc CodeCompanion]]
 | 
			
		||||
        end,
 | 
			
		||||
      },
 | 
			
		||||
      { "AstroNvim/astroui", opts = { icons = { CodeCompanion = "" } } },
 | 
			
		||||
    },
 | 
			
		||||
    event = "User AstroFile",
 | 
			
		||||
    cmd = {
 | 
			
		||||
      "CodeCompanion",
 | 
			
		||||
      "CodeCompanionActions",
 | 
			
		||||
      "CodeCompanionChat",
 | 
			
		||||
      "CodeCompanionCmd",
 | 
			
		||||
    },
 | 
			
		||||
    opts = {
 | 
			
		||||
      strategies = {
 | 
			
		||||
        chat = {
 | 
			
		||||
          adapter = "mistral",
 | 
			
		||||
        },
 | 
			
		||||
        inline = {
 | 
			
		||||
          adapter = "mistral",
 | 
			
		||||
        },
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "MeanderingProgrammer/render-markdown.nvim",
 | 
			
		||||
    optional = true,
 | 
			
		||||
    opts = function(_, opts)
 | 
			
		||||
      if not opts.file_types then opts.file_types = { "markdown" } end
 | 
			
		||||
      opts.file_types = require("astrocore").list_insert_unique(opts.file_types, { "codecompanion" })
 | 
			
		||||
    end,
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user