- Add :Coder version command with M.version constant
- Add .stylua.toml (2-space) and .luacheckrc configs
- Rewrite CI: lua.yaml (lint + auto-format + health), release.yaml
- Remove avante.nvim Rust/pre-commit workflows
- Fix 7 files missing local M = {}, cmp newline bug, loop.lua syntax
- Update all docs to match current project state
- Switch codebase from tabs to 2-space indentation
Made-with: Cursor
86 lines
2.2 KiB
Lua
86 lines
2.2 KiB
Lua
---@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.config.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
|