Ctags Source Navigator

Здесь можно обсудить ваш любимый плагин.
fps
Posts: 216
Joined: Wed 20 Apr, 2005 06:39
Has thanked: 17 times
Been thanked: 6 times

Ctags Source Navigator

Post by fps »

Latest post of the previous page:

Пожалуйста не используйте .tags-autoload!
Это от безысходности. Проверял все варианты.
Такое ограничение сделано специально.
Есть ли какой-то способ воспользоваться этим плагином моем в случае - когда рабочий каталог с проектами и каталог библиотек - это разные каталоги? (вроде бы это типовая ситуация)

Я ведь явно указываю плагину какой tags файл загрузить для библиотек (c:/python/tags).
Могу дополнительно указать загрузить tags для проекта (скажем c:/project/tags)
Плюс он автоматически сканирует мой рабочий файл (c:/project/file.py).

Почему это не должно работать?

Если это искусственное ограничение, нельзя ли его снять (можно опционально)?
eugene.manushkin
Posts: 29
Joined: Thu 03 May, 2018 13:17
Been thanked: 5 times

Ctags Source Navigator

Post by eugene.manushkin »

fps wrote: Wed 16 Oct, 2019 13:06 Есть ли какой-то способ воспользоваться этим плагином моем в случае - когда рабочий каталог с проектами и каталог библиотек - это разные каталоги? (вроде бы это типовая ситуация)
Плагин такого пока не делает, и похоже что это нужно запилить. Заворкэраундить вашу проблему у меня тоже не получилось: корень репозитория определяется как для tags с относительными путями так и для tags с абсолютными путями, поэтому обмануть плагин не получается.

Пожалуйста заведите ишью на гитхабе, буду делать.
fps
Posts: 216
Joined: Wed 20 Apr, 2005 06:39
Has thanked: 17 times
Been thanked: 6 times

Ctags Source Navigator

Post by fps »

Пожалуйста заведите ишью на гитхабе, буду делать.
Завел: https://github.com/EugeneManushkin/Ctag ... /issues/53
fps
Posts: 216
Joined: Wed 20 Apr, 2005 06:39
Has thanked: 17 times
Been thanked: 6 times

Ctags Source Navigator

Post by fps »

eugene.manushkin, спасибо, теперь вроде работает. Буду осваивать.
eugene.manushkin
Posts: 29
Joined: Thu 03 May, 2018 13:17
Been thanked: 5 times

Ctags Source Navigator

Post by eugene.manushkin »

Я довольно активно использую плагин для навигации по Lua скриптам. Меня никогда не устраивало как Сtags парсит Lua и я задался целью это пофиксить прямо в Universal Ctags, чтобы потом обновить ctags.exe в плагине. Однако прежде чем лезть к ним со своим пул реквестом я решил сделать пруф оф концепт: небольшую тулу которая парсит только Lua файлы которые ей дают на вход. Тула находится здесь: https://github.com/EugeneManushkin/Yalta. Можно доливать теги в существующий tags файл, можно попарсить все lua файлы в репозитории скриптом, который прилагается к тулзе: плагин прекрасно кушает и то и другое. Уважаемые луашники, если вы тут есть, то вы можете мне помочь своим фидбеком. Спасибо.
Last edited by eugene.manushkin on Fri 18 Sep, 2020 16:01, edited 1 time in total.
citRiks
Posts: 899
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 274 times
Been thanked: 47 times

Ctags Source Navigator

Post by citRiks »

eugene.manushkin,
а глупые вопросы тут можно задавать?
Ялта эта должно интегрироваться с вашим плагином как-то?
Прогнал на всем профайле типа так:
image.png
image.png (3.63 KiB) Viewed 288 times
Получил большой оутпут, вроде корректный (у меня там много барахла на Луа)
изначально в плагине репозиториев не было, и думал что они от этого появятся там, но не появились.

вот это тоже не понятно:
eugene.manushkin wrote: Fri 18 Sep, 2020 15:58 Можно доливать теги в существующий tags файл
Поясните пожалуйста
самому долго и углубленно не хотелось бы с этим сидеть,
а хотелось хотя бы понять количество человеко-часов требуемое для начала использования

FAR 5663, x86/64, Windows 7 Prof.Ed. SP1, последние версии ваших плагинов
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
eugene.manushkin
Posts: 29
Joined: Thu 03 May, 2018 13:17
Been thanked: 5 times

Ctags Source Navigator

Post by eugene.manushkin »

citRiks,
Ялта эта должно интегрироваться с вашим плагином как-то?
Оно пока из коробки не интегрируется, но мне просто это еще не пришло в голову. Лично для себя я написал скриптяру, который запускает ctags.exe с эксклудом по маске *.lua и после этого скриптом наподобие yalta.bat аппендит lua теги. Я доработаю этот скрипт и положу его в релиз Yalta. Вам нужно будет только прописать его в настройках плагина (F11->Ctags Source Navigator->C) в поле "Path to ctags.exe", и после этого у вас будет полноценная интеграция. Думаю за выхи сделаю.
Получил большой оутпут, вроде корректный (у меня там много барахла на Луа)
изначально в плагине репозиториев не было, и думал что они от этого появятся там, но не появились.
Немножко не так. Нужно было запускать так:

Code: Select all

cd path/to/repo
yalta.bat > tags
Теперь с репозиторием можно работать: плагин найдет файл tags и предложит его подгрузить. В stderr пишутся ошибки, а в stdout - только теги, поэтому 2>&1 не надо делать.
citRiks
Posts: 899
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 274 times
Been thanked: 47 times

Ctags Source Navigator

Post by citRiks »

Спасибо вам, проект интересный.
eugene.manushkin wrote: Fri 18 Sep, 2020 22:08 Теперь с репозиторием можно работать: плагин найдет файл tags и предложит его подгрузить.
В stderr пишутся ошибки, а в stdout - только теги, поэтому 2>&1 не надо делать.
это сделал, файл тагс создался корректно, но в плагине репозиториев не нашлось,
или без вашего обещаннго скрипта и не должно найтись?

Еще я воспользовался тогда 2&> с перенаправлением в другой файл,
(чтобы видеть ошибки я думаю что так можно? yalta.bat > tags 2> "tags-err.%time::=%.log"),
а ошибки получаются такие, запуская находясь в modules:
1.) не любит киррилицу в имени файла, например

Code: Select all

Error: Failed to open file. File: C:\Users\xxxxx\AppData\Roaming\Far Manager\Profile\Macros\modules\модуль для запуска консольных программ и получения их вывода\CreateProcessW.lua
Впрочем, учитывая что имена файла берутся и передаются в Ялту из bat-file,
проблемы с киррилицей ни разу не удивительны и "by design" )
2.) Рандомно не читаются некоторые файлы,
т.е. в след. раз этот файл схавается нормально, но упадет на другом рандомном файле, например:

Code: Select all

Error: Failed to open file. File: C:\Users\ххххх\AppData\Roaming\Far Manager\Profile\Macros\modules\winapi-2\examples\test-times.lua C:\Users\ххххх\AppData\Roaming\Far Manager\Profile\Macros\modules\winapi-2\examples\test-uninterrupted.lua
выглядит так как будто слепились два имени файла.
это грустнее чем кириллица, лечится, будет лечится?
Last edited by citRiks on Sat 19 Sep, 2020 18:04, edited 1 time in total.
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
eugene.manushkin
Posts: 29
Joined: Thu 03 May, 2018 13:17
Been thanked: 5 times

Ctags Source Navigator

Post by eugene.manushkin »

это сделал, файл тагс создался корректно, но в плагине репозиториев не нашлось
Если вы смотрите в меню "5 Manage repositories" то оно там появится только после того как файл tags будет загружен. Но вам не нужно об этом заботиться: просто начните пользоваться плагином находясь в папке (или файле) с вашим кодом и плагин сам вам предложит загрузить файл tags. Если нужно прыгать в ваш репозиторий из других мест, то тогда наведите курсор на сгенереный tags файл и нажмите F11->Ctags Source Navigator->6 Add permanent repository".
1.) не любит киррилицу в имени файла, например
Воспроизвел проблему: это происходит из-за кодировки консоли. Обычно консоль стартует с кодировкой OEM 866, а кодировка русских букв в именах файла CP1251. Лечится командой

Code: Select all

chcp 1251
перед запуском скрипта. Я это пофикшу в скрипте: там самое сложное это определить умолчательную кодировку для текущей винды.
2.) Рандомно не читаются некоторые файлы,
Пока пробую воспроизвести
eugene.manushkin
Posts: 29
Joined: Thu 03 May, 2018 13:17
Been thanked: 5 times

Ctags Source Navigator

Post by eugene.manushkin »

Выкатил релиз https://github.com/EugeneManushkin/Yalt ... d_1.1.0.32. Теперь это можно интегрировать в CtagsSourceNavigator:
1. Распаковываете архив в любую папку (например, c:\tools)
2. В меню конфигурации плагина (F11->Ctags Source Navigator->C Plugin configuration) в поле "Path to ctags.exe" прописываете полный путь к скрипту ctags_wrapper.bat (c:\tools\yalta\ctags_wrapper.bat)
Post Reply

Return to “Обсуждение плагинов”