Skip to content

maxvst/roocode-lsp-tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔧 roocode-lsp-tools

Набор LSP-инструментов для Roo-Code — Custom Tools для навигации по коду с использованием Language Server Protocol через VSCode API.

Проект предоставляет инструменты, которые позволяют код-агентам использовать семантический анализ кода через LSP вместо текстового поиска. Это повышает точность навигации по кодовой базе и устраняет проблему "галлюцинаций" LLM при работе с координатами в файлах.

Основное преимущество — инструменты *_by_name, которые позволяют находить определения, объявления и типы по имени символа, а не по координатам строки и символа.


📌 Версия и статус проекта

Версия: 0.1

⚠️ Внимание: Проект находится в исследовательской фазе. Мажорная версия "0" означает, что ведётся активная разработка и эксперименты. На данный момент проект доказывает техническую возможность интеграции код-агента с LSP и не готов к полноценному использованию в продакшене.


📚 Документация

📖 Основные разделы

Раздел Описание
📋 Обзор проекта Описание инструментов, их параметры и возможности
🚀 Установка и запуск Требования, установка зависимостей, сборка
📚 Использование Примеры использования инструментов
🧪 Тестовый фреймворк Документация тестового фреймворка

🛠️ Доступные инструменты

Инструмент Описание
go_to_definition Навигация к определению по координатам
go_to_definition_by_name Навигация к определению по имени
go_to_declaration_by_name Навигация к объявлению (интерфейс/абстрактный класс)
go_to_type_definition_by_name Навигация к определению типа
tommorow Тестовый инструмент

📖 Подробная документация инструментов: docs/overview.md


⚠️ Known Issues (Известные проблемы)

Проблема Описание
🟡 Проблемы тестирования go-to-declaration-by-name Custom tool go-to-declaration-by-name имеет проблемы тестирования в текущем окружении

🗺️ Roadmap (План развития)

🎯 Доработка промптов и интеграция

  • Совершенствование system prompt и описаний инструментов (tool prompts), чтобы код-агент когда это уместно использовал custom tools вместо стандартных search_files и codebase_search
  • Отладка и обкатка написанных инструментов на реальных задачах

🧪 Тестовое окружение

  • Изоляция: использование отдельного экземпляра VS Code вместо установленного в системе
  • Поддержка C++: настройка clangd и написание тестов для C++ файлов
  • Рефакторинг: подготовка окружения для тестирования LSP-команд рефакторинга
  • (Опционально) Поддержка других языков программирования

🚀 Расширение функционала

Разработка дополнительных custom tools:

  • Дополнительные инструменты навигации по коду

    • find_references_by_name — поиск всех ссылок на символ по имени
    • get_document_symbols — дерево символов документа
    • get_call_hierarchy — иерархия вызовов
    • get_type_hierarchy — иерархия типов
  • Инструменты для предоставления советов по исправлению кода

    • get_diagnostics — получение диагностических сообщений
    • get_code_actions — получение доступных code actions
  • Инструменты для выполнения рефакторинга средствами LSP

    • rename_symbol — переименование символа
    • organize_imports — организация импортов
    • extract_function — извлечение в функцию
    • extract_variable — извлечение в переменную

📊 Логирование и метрики

  • Реализовать логирование вызовов инструментов для сбора статистики:
    • Время каждого вызова инструмента
    • Однозначность определения файла для перехода (нашлось ли определение, сколько вариантов)
    • Параметры вызова (symbol_name, symbol_kind, file_path)
    • Результат выполнения (успех/неудача, количество найденных определений)
  • Создать систему сбора метрик для тестирования гипотез эффективности работы различных подходов
  • Подготовка аналитики для оптимизации промптов и алгоритмов поиска

📊 Статистика проекта

Метрика Значение
Активных инструментов 5
Планируемых инструментов 10+
Тест-кейсов 45+
Поддерживаемых языков TypeScript (расширяемо)

📄 Лицензия

MIT


🔗 Полезные ссылки

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages