Skip to content

Latest commit

 

History

History
88 lines (87 loc) · 13.4 KB

README-rus.md

File metadata and controls

88 lines (87 loc) · 13.4 KB

Ctags Source Navigator

Это Far Manager плагин для навигации по исходному коду, проиндексированному с помощью утилиты Ctags.

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

Фичи

  • Переход к объявлению имени
  • Автодополнение (code completion)
  • Поиск имени по всему репозиторию
  • Поиск имени в текущем файле
  • Поиск и открытие файла по имени
  • Топ посещаемых имен и файлов
  • Список членов класса
  • История навигации по исходникам
  • Создание базы данных Ctags для выбранного корня репозитория
  • Переиндексация редактируемого файла и репозитория
  • Макрос с горячими клавишами

Что нового

2.1.0.92

  • При открытии репозитория в меню "Manage Repositories" плагин переместит вас в ту папку где вы работали над проектом #93
  • Навигация полностью переработана. Опции "Go back" и "Go forward" стали более удобными и предсказуемыми #94
  • Плагин стал стабильнее. Пофикшено: #95, #96, #97

2.1.0.86

  • Теперь можно обновлять индекс редактируемого файла (#79)
  • Самые посещаемые теги выводятся в топе всех меню (#87, #88, #90). Это поведение можно отключить: F11->Ctags Source Navigator->Plugin configuration->Recent tags in the first place
  • Плагин стал чуть чуть удобнее. Зацените обновленное меню "Manage repositories", теперь там можно смотреть историю заргуженых репозиториев, перемещаться в корень репозиторя, и делать любой репозиторий библиотечным (permanent)
  • Плагин стал немного быстрее. Пофикшен медленный поиск коротких имен (#85)
  • Плагин стал стабильнее. Пофикшены баги: #77, #83, #84, #86, #89

2.1.0.68

  • Плагин стал стабильнее. Пофикшены баги: #70, #71, #75

Установка

  1. Загрузите последний релиз со страницы релизов
  2. Извлеките содержимое архива в папку FarManager/Plugins/ctags
  3. Установите макрос с горячими клавишами. Скопируйте скрипт ctags_hotkeys.lua в папку %FARPROFILE%\Macros\scripts
    copy ctags_hotkeys.lua "%FARPROFILE%\Macros\scripts"
    
    После копирования скрипта перезапустите Far Manager

Используйте кастомный ctags индексатор

Плагин поддерживает Universal Ctags, Exuberant Ctags и ctags из проекта Cygwin. Откройте F9->Options->Plugins configuration->Ctags Source Navigator, поместите путь до ctags.exe в едитбокс 'Path to ctags.exe' и нажмите OK.

Если вы Lua разработчик, вам понравится Yet Another Lua TAgs

Эту штуку легко интегрировать в плагин как кастомный ctags индексатор. Скачайте свежий релиз, распакуйте его и пропишите полный путь до скрипта ctags_wrapper.bat расположенного в <распакованный_релиз_yalta>\yalta\ctags_wrapper.bat в 'Path to ctags.exe' меню конфигурации плагина.

Использование

  1. Используйте плагин в непроиндексированных файлах. Плагин автоматически проиндексирует текущий открытый файл при вызове меню плагина

  2. Проиндексируйте репозиторий. Для этого вы можете использовать ctags плагин: перейдите в папку репозитория, переместите курсор на папку, которую вы хотите индексировать, или на папку '..', если вы хотите индексировать весь репозиторий. Нажмите F11->Ctags Source Navigator->Index selected directory. Файл тегов будет создан внутри выбранной папки, и все символы будут автоматически загружены в плагин. Если у вас уже есть репозиторий, индексированный утилитой ctags, вы можете загрузить индексный файл (tags), чтобы сообщить плагину, что вы намерены работать с этим репозиторием. Это можно сделать несколькими способами:

    • Ничего не делать: при попытке поиска имени плагин сам предложит загрузить один из файлов тегов, который он нашел в родительских каталогах.
    • Переместите курсор на файл тегов и просто нажмите Enter.
    • Переместите курсор на файл тегов, нажмите F11->Ctags Source Navigator->Load tags file (самый скучный способ загрузки тегов).
    • Загрузите недавно открытый файл тегов. Нажмите F11->Ctags Source Navigator->Load from history и выберите файл тэгов.

    Теперь плагин «знает» о символах в вашем репозитории, и вы можете использовать плагин для поиска имен.

  3. По умолчанию плагин не выполняет поиск имен для репозиториев, в котором вы не находитесь в данный момент. Однако это поведение можно поменять для некоторых репозиториев, сделав их библиотечными (permanent). Чтобы сделать репозиторий библиотечным, перейдите в нужный репозиторий и наберите меню F11->Ctags Source Navigator->Add permanent repository. После этого плагин предложит вам на выбор tags файл, который соответствует репозиторию. Чтобы репозиторий перестал быть библиотечным, вам необходимо зайти в меню F11->Ctags Source Navigator->Manage repositories, выбрать соответствующий репозиторий и нажать комбинацию клавиш Ctrl+Del.

  4. Откройте файл с исходным кодом, перейдите к имени, объявление которого вы хотели бы найти. Нажмите F11->Ctags Source Navigator->Go to, и плагин автоматически переместит курсор к объявлению этого имени. Если имя имеет несколько объявлений (например, в C++ определение имени также является объявлением, поэтому в этом случае у вас будет два объявления), плагин предложит загрузить одно из них.

  5. Для автодополнения имени нажмите F11->Ctags Source Navigator->Complete symbol

  6. Вы можете вернуться на то место откуда перешли используя планин нажав F11->Ctags Source Navigator->Go back

  7. Перемещайтесь между текущей и предыдущей позиции используя опцию Go back вместе с F11->Ctags Source Navigator->Go forward

  8. Вы можете просмотреть список членов класса. Для этого установите курсор на имя класса, а затем нажмите F11->Ctags Source Navigator->Class members

  9. Вы можете просмотреть имена, объявленные в текущем файле. Нажмите F11->Ctags Source Navigator->Search name in opened file и начните печатать (или вставьте из буфера обмена) имя, которое вы хотите найти.

  10. Вы можете искать имена по всему репозиторию. Эта опция работает как в главном меню плагина так и в меню редактора. Нажмите F11->Ctags Source Navigator->Search name in entire repository и начните печатать (или вставьте из буфера обмена) имя, которое вы хотите найти.

  11. Вы можете искать и открывать файлы, которые были проиндексированы. Эта опция доступна в главном меню и в меню редактора, нажмите F11->Ctags Source Navigator->Search file by name и начните печатать (или вставьте из буфера обмена) имя файла, который хотите открыть.

  12. Вы можете отфильтровать любую выдачу, а так же результаты фильтрации. Нажмите Tab в любом меню с выбором имен или файлов чтобы начать фильтровать результат, Esc - чтобы перейти к предыдущему фильтру и Ctrl+Z чтобы закрыть меню.

  13. Если кодовая база устарела, вы можете переиндексировать репозиторий. Нажмите F11->Ctags Source Navigator->Reindex repository в главном меню или в меню editor и плагин предложит вам переиндексировать один из tags файлов, которые он нашел. Если во время индексирования что-то пойдет не так (например, вы отмените операцию) плагин откатится к старому tags файлу.

Горячие клавиши (доступно только если установлено)

Редактор:

  • Go to - Ctrl+F
  • Complete name - Ctrl+Space
  • Go back - Ctrl+G
  • Go forward - Ctrl+D
  • Search name in opened file - Ctrl+Shift+X
  • Search name in entire repository - Ctrl+Shift+T
  • Search file by name - Ctrl+Shift+R

Главное меню:

  • Search name in entire repository - Ctrl+Shift+T
  • Search file by name - Ctrl+Shift+R

Сделайте вклад в проект

Если у вас есть крутая идея новой фичи или вы обнаружили ошибку, пожалуйста, создайте ишью. Нажмите на звездочку в правом верхнем углу страницы, если вам нравится этот плагин

Исходный код

Код этого плагина основан на исходном коде оригинального Ctags Source Navigator плагина. Изначально я планировал просто портировать его под третий Far. Однако чтобы плагин можно было использовать пришлось все серьезно переделать и добавить фичей (и фичей будет еще больше!). Поэтому я решил стать мантейнером плагина. Спасибо Константину Ступнику, автору оригинального плагина Ctags Source Navigator.