---@mod codetyper Codetyper.nvim - AI-powered coding partner ---@brief [[ --- Codetyper.nvim is a Neovim plugin that acts as your coding partner. --- It uses LLM APIs (Copilot, Ollama) to help you write code faster --- with inline prompt tags and visual selection transforms. --- Features an event-driven scheduler with confidence scoring and --- completion-aware injection timing. ---@brief ]] local M = {} M.version = "1.0.1" ---@type CoderConfig M.config = {} ---@type boolean M._initialized = false --- Setup the plugin with user configuration ---@param opts? CoderConfig User configuration options function M.setup(opts) if M._initialized then return end local config = require("codetyper.constants.defaults") M.config = config.setup(opts) -- Initialize modules local commands = require("codetyper.adapters.nvim.commands") local gitignore = require("codetyper.support.gitignore") local autocmds = require("codetyper.adapters.nvim.autocmds") local tree = require("codetyper.support.tree") local completion = require("codetyper.features.completion.inline") -- Register commands commands.setup() -- Setup autocommands autocmds.setup() -- Setup file reference completion completion.setup() -- Ensure .gitignore has coder files excluded gitignore.ensure_ignored() -- Initialize tree logging (creates .codetyper folder and initial tree.log) tree.setup() -- Initialize project indexer if enabled if M.config.indexer and M.config.indexer.enabled then local indexer = require("codetyper.features.indexer") indexer.setup(M.config.indexer) end -- Initialize brain learning system if enabled if M.config.brain and M.config.brain.enabled then local brain = require("codetyper.core.memory") brain.setup(M.config.brain) end -- Setup inline ghost text suggestions (Copilot-style) if M.config.suggestion and M.config.suggestion.enabled then local suggestion = require("codetyper.features.completion.suggestion") suggestion.setup(M.config.suggestion) end M._initialized = true end --- Get current configuration ---@return CoderConfig function M.get_config() return M.config end --- Check if plugin is initialized ---@return boolean function M.is_initialized() return M._initialized end return M