Ctags Source Navigator

Здесь можно обсудить ваш любимый плагин.
eugene.manushkin
Posts: 23
Joined: Thu 03 May, 2018 13:17

Ctags Source Navigator

Post by eugene.manushkin » Thu 24 May, 2018 20:40

Latest post of the previous page:

HaRT wrote:
Thu 24 May, 2018 11:26
eugene.manushkin wrote:
Thu 24 May, 2018 09:09
copying name from menu to clipboard (Ctrl+C or Shift+Insert shortcuts are supported)
Копирование на ShiftIns? Обычно же это CtrlIns. То ли в реализации отступление от конвенции, то ли в анонсе ошибка.
Спасибо, исправил. Ошибка в анонсе.

User avatar
Tim Sobolev
Posts: 705
Joined: Fri 01 Apr, 2005 14:46
Location: Украина
Has thanked: 1 time

Ctags Source Navigator

Post by Tim Sobolev » Thu 24 May, 2018 20:42

Всё замечательно но есть проблема с навигацией и возвратом:
  • При навигации к символу в текущем файле и возврате курсор смещается на строку вверх.
  • При навигации к символу во внешнем файле и возврате всё как и должно быть
Также очень нехватает быстрого отключения/включения алфавитной сортировки для меню членов класса:
в отключеном виде удобно видеть очередность и тип полей при сравнительном анализе / восстановлении кода.
Last edited by Tim Sobolev on Tue 29 May, 2018 16:51, edited 2 times in total.

eugene.manushkin
Posts: 23
Joined: Thu 03 May, 2018 13:17

Ctags Source Navigator

Post by eugene.manushkin » Tue 19 Jun, 2018 22:12

Tim Sobolev wrote:
Thu 24 May, 2018 20:42
Всё замечательно но есть проблема с навигацией и возвратом:
  • При навигации к символу в текущем файле и возврате курсор смещается на строку вверх.
  • При навигации к символу во внешнем файле и возврате всё как и должно быть
Также очень нехватает быстрого отключения/включения алфавитной сортировки для меню членов класса:
в отключеном виде удобно видеть очередность и тип полей при сравнительном анализе / восстановлении кода.
Tim Sobolev,
Спасибо за отзыв!
При навигации к символу в текущем файле и возврате курсор смещается на строку вверх.
Пофикшу
Также очень нехватает быстрого отключения/включения алфавитной сортировки для меню членов класса
Фича несложная, думаю что запилю когда будет время.
Если у вас есть желание, то заведите мне пожалуйста 2 ишью на гитхабе одну с багой и одну с фичей, можно по-русски или прямо скопируйте текст Ош из своего поста.

buniak_a_h
Posts: 1266
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 89 times
Been thanked: 80 times
Contact:

Ctags Source Navigator

Post by buniak_a_h » Sat 06 Jul, 2019 23:56

Какая-то ошибка, или я что-то неправильно делаю?
Far 3.0.5418-x64
plugin cTags версии 2.1.0.42
При попытке сохранения настроек получаю сообщение:
Failed to save configuration to file: C:\Program Files\Far Manager\Plugins\Editor\cTags\config
При этом получение прав администратора ситуацию не исправляет.
Права проверил: создаются без проблем и файл с указанным именем, и папка.
На самом деле некоторые настройки (в частности case sensitive) не должны быть глобальными, а зависеть от языка (от расширения файла с исходником, видимо). Аргументирую: у меня есть как проекты на C++ (C#), так и проекты на Pascal, Harbour. Первые (как и lua) - регистрозависимые, вторые - нет. Не хотелось бы при переходе в каталог с проектом на другом языке каждый раз проверять-настраивать плагин.

buniak_a_h
Posts: 1266
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 89 times
Been thanked: 80 times
Contact:

Ctags Source Navigator

Post by buniak_a_h » Sun 07 Jul, 2019 00:09

Уточнение.
Если ФАР запущен изначально с правами администратора - проблемы нет. Если запущен обычно, затем при попытке создать файл получить предложение получить права администратора, ответить согласием и после этого создавать файл config, то несмотря на возможность создания такого файла настройки сохранить не удаётся.

eugene.manushkin
Posts: 23
Joined: Thu 03 May, 2018 13:17

Ctags Source Navigator

Post by eugene.manushkin » Mon 14 Oct, 2019 22:10

buniak_a_h wrote:
Sun 07 Jul, 2019 00:09
Уточнение.
Если ФАР запущен изначально с правами администратора - проблемы нет. Если запущен обычно, затем при попытке создать файл получить предложение получить права администратора, ответить согласием и после этого создавать файл config, то несмотря на возможность создания такого файла настройки сохранить не удаётся.

Здравствуйте, buniak_a_h

Извините что так долго не отвечаю. По правде сказать я Ваш пост прозевал, поскольку сюда никто целый год не писал и в какой-то момент я перестал регулярно сюда ходить.
buniak_a_h wrote:
Sat 06 Jul, 2019 23:56
При попытке сохранения настроек получаю сообщение:
Failed to save configuration to file: C:\Program Files\Far Manager\Plugins\Editor\cTags\config
Судя по пути к плагину вы установили фар инсталлятором, возможно проблема с правами каталога которые расставила винда при инсталляции фара. Я попробую воспроизвести проблему и выясню в чем конкретно косяк. Если такая проблема возникает почти всегда при таком сценарии установки фара, то возможно мне стоит пересмотреть расположение файла с настройками и я это пофикшу. Пожалуйста опишите подробно как вы ставили фар и каким образом копировали плагин в папку C:\Program Files\Far Manager\Plugins\Editor\cTags.
buniak_a_h wrote:
Sat 06 Jul, 2019 23:56
На самом деле некоторые настройки (в частности case sensitive) не должны быть глобальными, а зависеть от языка
Пожалуйста перечислите все настройки которые вы считаете необходимо кастомизировать для каждого языка. Точно ли нужно кастомизировать для языка а не для проиндексированного проекта?

Если не трудно, то заведите мне на гитхабе багу про конфиг и ишью про настройки.

Спасибо.

User avatar
HaRT
Moderator
Posts: 9167
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 90 times
Been thanked: 177 times

Ctags Source Navigator

Post by HaRT » Mon 14 Oct, 2019 22:14

eugene.manushkin wrote:
Mon 14 Oct, 2019 22:10
в какой-то момент я перестал регулярно сюда ходить
Можно ж настроить уведомления по э-почте…
Фар есть инструмент, а не нянька. © 2009 DrKnS

buniak_a_h
Posts: 1266
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 89 times
Been thanked: 80 times
Contact:

Ctags Source Navigator

Post by buniak_a_h » Mon 14 Oct, 2019 23:36

eugene.manushkin wrote:
Mon 14 Oct, 2019 22:10
Пожалуйста опишите подробно как вы ставили фар и каким образом копировали плагин в папку C:\Program Files\Far Manager\Plugins\Editor\cTags.
1. Вы уж извините... Это было лет 10 назад. Чаще всего устанавливаю ФАР тупой распаковкой из архива (на самом деле у меня несколько ФАРов - portable, 3-x86, 1.75, в виртуальных машинах тоже... Про конкретно эту версию уже точно не скажу, как ставил).
2. Снял совсем нафик контроль прав для %FARHOME% и его подпапок (просто достало, что как ставишь новый плагин, так готовься, что будут проблемы с доступом) - и эта ошибка ушла. Обратно возвращать не буду, так что считайте сигналом, а не багрепортом; будет время и желание - займитесь. Считайте, что это - пример умолчательной ситуации: эти папки могут быть недоступны (по умолчанию именно так и есть) для записи. Лучше бы в SQLite-базу параметров плагинов. Как конкретно это делается из плагина - не знаю, в макросах - просто. Это - совет, но я не обижусь, если проигнорируете.
eugene.manushkin wrote:
Mon 14 Oct, 2019 22:10
Пожалуйста перечислите все настройки которые вы считаете необходимо кастомизировать для каждого языка.
Совершенно точно две вещи: casesensfilt и wordchars - и они должны зависеть именно от языка, а не от проекта. Например: в голову приходят только два языка с регистрозависимыми идентификаторами (C с потомками и Lua) и дикое количество языков, плюющих на регистр (Pascal и Harbour - это только те, на которых у меня проекты); есть языка, в которых имена могут быть только алфавитно-цифровыми (на литинице), а есть языки, в именах функций могут быть русские буквы и всякие символы (даже пробелы! Пример - древний Fortran).
Кастомизровать для проекта мне кажется неправильным: проект может состоять из модулей, написанных на разных языках, а значит и требования к идентификаторам могут в разных модулях быть разными.
Виш на гитхаб я ниасилю.

User avatar
HaRT
Moderator
Posts: 9167
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 90 times
Been thanked: 177 times

Ctags Source Navigator

Post by HaRT » Mon 14 Oct, 2019 23:51

eugene.manushkin wrote:
Mon 14 Oct, 2019 22:10
Точно ли нужно кастомизировать для языка а не для проиндексированного проекта?
Например, некоторые зрелые продукты позволяют работать со «слоями» настроек: для проекта, для машины, для команды. В более низком (более частном) слое значение настройки можно переопределить (как при наследовании классов). Нужно ли такое в данном случае — вопрос дискуссионный.
Фар есть инструмент, а не нянька. © 2009 DrKnS

buniak_a_h
Posts: 1266
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 89 times
Been thanked: 80 times
Contact:

Ctags Source Navigator

Post by buniak_a_h » Tue 15 Oct, 2019 00:13

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

eugene.manushkin
Posts: 23
Joined: Thu 03 May, 2018 13:17

Ctags Source Navigator

Post by eugene.manushkin » Tue 15 Oct, 2019 08:31

buniak_a_h wrote:
Mon 14 Oct, 2019 23:36
Виш на гитхаб я ниасилю.
Пишите по-русски. Важно чтобы любое изменение в коде было мотивировано ишьюсом в гитхабе.
buniak_a_h wrote:
Mon 14 Oct, 2019 23:36
Совершенно точно две вещи: casesensfilt и wordchars
wordchars - это рудимент, я планировал улучшить выделение токенов в тексте и выкинуть эту настройку. С нелатинскими токенами это вообще отдельная песня. Нужно еще придумать что туда запихнуть.

buniak_a_h
Posts: 1266
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 89 times
Been thanked: 80 times
Contact:

Ctags Source Navigator

Post by buniak_a_h » Tue 15 Oct, 2019 10:14

eugene.manushkin wrote:
Tue 15 Oct, 2019 08:31
Пишите по-русски.
Извините.
Я незнаком с интерфейсом GitHab-а, все пункты там написаны по-английски, поэтому заниматься этим не буду. Тем более, что если сделают, наконец, то, что я когда-то просил в Colorer добавить (возможность "молчаливого" получения некоторых списков из Lua-макросов), то cTag станет ненужным. Так - по-русски?
Ну и вдогоночку. Я не знаю даже Вашей терминологии. В частности, что такое « ишьюс в гитхабе» .

fps
Posts: 209
Joined: Wed 20 Apr, 2005 06:39
Has thanked: 15 times
Been thanked: 6 times

Ctags Source Navigator

Post by fps » Wed 16 Oct, 2019 05:12

Пытаюсь настроить работу плагина c Python
Почему-то у меня плагин работает только с файлами внутри каталога установки питона

Code: Select all

c:/python/              - сюда установлен питон
c:/python/Lib           - каталог с библиотеками питона
c:/python/....          - прочие его каталоги
c:/python/tags          - файл индекса, созданный плагином
c:/python/1/2/3/test.py - тестовый файл. с ним плагин нормально работает

c:/1/test2.py           - если этот тестовый файл положить сюда - плагин не работает
При попытке вызвать в меню плагина Goto или Class Members в открытом в редакторе файле test2.py
очень быстро проскакивает какое-то диалоговое окно с сообщением (не знаю как его затормозить) и всё.

Файл c:/python/tags пробовал загружать принудительно, прописывать в .tags-autoload - не помогает

eugene.manushkin, что я делаю не так?


Win7, FAR3 x64 5487, CTags plugin 2.1.0.42, Python 3.8

eugene.manushkin
Posts: 23
Joined: Thu 03 May, 2018 13:17

Ctags Source Navigator

Post by eugene.manushkin » Wed 16 Oct, 2019 12:44

fps wrote:
Wed 16 Oct, 2019 05:12
прописывать в .tags-autoload - не помогает
Пожалуйста не используйте .tags-autoload! Эта очень очень мутная фича которая помогала загружать tags файлы когда их можно было загружать только принудительно. Сейчас плагин сам ищет файлы tags и предлагает их загружать. В новых версиях плагина фича .tags-autoload будет выпилена.
fps wrote:
Wed 16 Oct, 2019 05:12
c:/python/tags - файл индекса, созданный плагином
c:/python/1/2/3/test.py - тестовый файл. с ним плагин нормально работает

c:/1/test2.py - если этот тестовый файл положить сюда - плагин не работает
Если я правильно понял, то вы проиндексировали папку c:/python, а затем скопировали один из файлов (test.py) за пределы проиндексированной папки. В этом случае плагин работает только локально с вашим файлом. Быстро всплывающее окошко - это как раз он индексирует редактируемый файл. Я подозреваю, что вы пытаетесь посмотреть члены класса либо перейти к имени, которое не было объявлено в test.py. Так работать не будет: имена ищутся только в текущем репозитории, корнем которого считается папка с файлом tags.

Такое ограничение сделано специально. Представьте себе что у вас загружены 2 репозитория и вы хотите перейти к какому-нибудь не уникальному имени типа Load, Find, GetData и т.п. Вы можете случайно перепрыгнуть в другой репозиторий и потом полчаса втыкать, почему тут совсем не та функция, которую вы ожидали. Усугублю пример: представьте что эти два репозитория с похожим кодом. Вы девелопите код в одном репозитории, случайно прыгаете в другой репозиторий и продолжаете девелопить там. Кроме того если у вас открыты n репозиториев выдача возможных вариантов увеличивается в n раз, это тоже неудобно.

fps
Posts: 209
Joined: Wed 20 Apr, 2005 06:39
Has thanked: 15 times
Been thanked: 6 times

Ctags Source Navigator

Post by fps » Wed 16 Oct, 2019 13:06

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

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

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

Если это искусственное ограничение, нельзя ли его снять (можно опционально)?

eugene.manushkin
Posts: 23
Joined: Thu 03 May, 2018 13:17

Ctags Source Navigator

Post by eugene.manushkin » Wed 16 Oct, 2019 14:44

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

Пожалуйста заведите ишью на гитхабе, буду делать.

fps
Posts: 209
Joined: Wed 20 Apr, 2005 06:39
Has thanked: 15 times
Been thanked: 6 times

Ctags Source Navigator

Post by fps » Wed 16 Oct, 2019 16:05

Пожалуйста заведите ишью на гитхабе, буду делать.
Завел: https://github.com/EugeneManushkin/Ctag ... /issues/53

Post Reply

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