Skip to content

Sugestão futura: Plugin para Neovim #7

@KerubinDev

Description

@KerubinDev

Recebi um comentário interessante para considerar no futuro:

Muito interessante. Seria legal ter um plugin pra neovim.

No AkitaLLM existem exemplos de plugins e toda a estrutura para criar novos. O sistema é baseado em um modelo híbrido:

  • Plugins internos: ficam na pasta akita/plugins/.
  • Plugins externos: pacotes Python instalados via pip que usam entry_points.

Como criar um plugin para AkitaLLM

  1. Interface:
    • Herde de AkitaPlugin e implemente os métodos obrigatórios (name, description, get_tools).
    • Exemplo básico:
from akita.core.plugins import AkitaPlugin
from typing import List, Dict, Any

class MeuPluginNeovim(AkitaPlugin):
    @property
    def name(self) -> str:
        return "neovim_tool"
    @property
    def description(self) -> str:
        return "Plugin para integração com Neovim."
    def get_tools(self) -> List[Dict[str, Any]]:
        return [
            {
                "name": "neovim_example",
                "description": "Exemplo de ferramenta para Neovim.",
                "parameters": {},
                "func": lambda: "Resultado do plugin Neovim"
            }
        ]
  1. Registro:
    • Para plugins externos, registre no pyproject.toml:
      [project.entry-points."akitallm.plugins"]
      neovim = "seu_pacote.modulo:MeuPluginNeovim"
  2. Descoberta:
    • O AkitaLLM escaneia akita/plugins/ e plugins instalados via Python (entry point akitallm.plugins).
    • Para testar se o plugin foi carregado:
      from akita.core.plugins import PluginManager
      pm = PluginManager()
      pm.discover_all()
      print(pm.plugins.keys())
  3. Documentação e exemplos:

Integração com Neovim

  • A comunicação pode ser feita via plugin Python para Neovim, usando pynvim (https://github.com/neovim/pynvim), ou scripts que utilizam AkitaLLM como backend.
  • Tools podem expor APIs para comandos de Neovim, scripts, ou integração direta.

Recomendações

  • Prioridade mínima, sugerido avaliar juntamente com evoluções do ecossistema AkitaLLM.
  • Esse issue serve como referência para quem quiser iniciar ou propor propostas detalhadas de integração.

Dúvidas, ideias ou rascunhos podem ser anexados aqui à medida que novas informações surgirem.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions