"Lost in Translation"

Разработка Far.
Post Reply
User avatar
Kadaner
Posts: 37
Joined: Sun 28 Jan, 2018 05:00
Has thanked: 3 times
Been thanked: 3 times

"Lost in Translation"

Post by Kadaner »

Я понемножку занимаюсь переводом непереведённых кусков хэлпа на английский и попутно стараюсь уточнять непонятные места (на обоих языках). Иногда у меня возникают вопросы, на которые мне не удаётся быстро ответить, глядя в код. Я буду задавать эти вопросы в этой теме.

Первый вопрос. Каково ожидаемое поведение Shift+F10 в диалоге копирования/переноса (операции с деревом разрешены в Far:Config). Вот что написано в хэлпе:
#Shift+F10# allows to open the tree for the path entered in the input line (if several paths are entered, only the first one is taken into account).
#Shift+F10# позволяет открыть дерево с учётом пути, содержащегося в строке ввода (если там перечислено несколько путей, то учитывается только первый из них).
У меня при нажатии Shift+F10 дерево всегда открывается с курсором поставленным на корень. Что я делаю не так?
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

"Lost in Translation"

Post by zg »

баг в дереве скорее всего.
User avatar
Kadaner
Posts: 37
Joined: Sun 28 Jan, 2018 05:00
Has thanked: 3 times
Been thanked: 3 times

"Lost in Translation"

Post by Kadaner »

Да, похоже. Я потом подебажил и видел, как m_Root сначала устанавливается в содержимое текст-бокса, а потом перезаписывается рутовым фолдером, кажется только в случае, если дерево открывали по Shift+F10. Постараюсь разобраться на выходных.
User avatar
Kadaner
Posts: 37
Joined: Sun 28 Jan, 2018 05:00
Has thanked: 3 times
Been thanked: 3 times

"Lost in Translation"

Post by Kadaner »

Как вы думаете, нужно ли в хелпе "Редактор: Режим замены - Сохранять стиль" описание подробностей алгоритма? (Чтобы найти хелп: F4, F1, "Ctrl+F7 Замена", "Сохранять стиль".)

С одной стороны, кому-то точные сведения о том, что и как будет или не будет заменяться, могут помочь. С другой стороны, разобраться в этом описании довольно трудно. Сколько пользователей его читало? Не будет ли достаточно сказать что-нибудь расплывчатое про "эвристики" и показать примеры? Может быть, добавить примеров.

Если вы всё же считаете, что описание алгоритма сохранить полезно, может ли кто-то сказать, каков порядок "сил" правил форматирования? Правильно ли я понимаю, что это UPPERCASE_ALL > LOWERCASE_ALL > UPPERCASE_FIRST > UNKNOWN?
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

"Lost in Translation"

Post by HaRT »

Kadaner wrote: Mon 26 Feb, 2018 05:11Сколько пользователей его читало? Не будет ли достаточно сказать что-нибудь расплывчатое
Я пока не читал, но перед тем как применить на большом важном тексте, прочитал бы непременно, и расплывчатое описание лично мне точно не понравилось бы.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Kadaner
Posts: 37
Joined: Sun 28 Jan, 2018 05:00
Has thanked: 3 times
Been thanked: 3 times

"Lost in Translation"

Post by Kadaner »

HaRT wrote: Mon 26 Feb, 2018 13:58перед тем как применить на большом важном тексте, прочитал бы непременно
Fair enough. Буду переводить и уточнять описание. Вопросы остаются:
  • Каков порядок "сил" правил?
  • Правильно ли я понимаю, что образцы поиска и замены должны иметь одинаковое количество частей после разбиения?
I'll try to reverse-engineer, но если кто-то может сказать, не глядя в код, это поможет.
User avatar
Kadaner
Posts: 37
Joined: Sun 28 Jan, 2018 05:00
Has thanked: 3 times
Been thanked: 3 times

"Lost in Translation"

Post by Kadaner »

Так, кажется разобрался. Узнал много интересного. В частности, что в некоторых случаях результат зависит не только от найденной строки, но и от контекста, в котором она найдена. А также, что результат замены A_B_C на abc.def.ghi.jkl будет Abc_Def_Ghi_Jkl (proper case), а не ожидавшееся мной (uppercase) ABC_DEF_GHI_JKL.

Боюсь, что при всём желании, мне не удастся дать вполне точное описание алгоритма. К сожалению, что-нибудь расплывчатое всё равно по углам останется. :( Ну, попробую.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

"Lost in Translation"

Post by DrKnS »

Kadaner wrote: Mon 05 Mar, 2018 05:20а не ожидавшееся мной (uppercase)
Возможно, это баг.
User avatar
Kadaner
Posts: 37
Joined: Sun 28 Jan, 2018 05:00
Has thanked: 3 times
Been thanked: 3 times

"Lost in Translation"

Post by Kadaner »

Нет, не баг. Это by design. Token, состоящий из одной заглавной буквы, может быть рассмотрен одновременно как Proper case и как UPPER case, а Proper case имеет более высокий приоритет, чем UPPER case. Кстати, это единственный случай, когда сравнительные "силы" правил имеют значение. Все другие tokens удовлетворяют не более чем одному правилу. В общем, странная фича.
User avatar
Kadaner
Posts: 37
Joined: Sun 28 Jan, 2018 05:00
Has thanked: 3 times
Been thanked: 3 times

"Lost in Translation"

Post by Kadaner »

[Извините, если я уже спрашивал. Я тут всю весну и лето болел и успел всё забыть. :( ]

В хелпе про @CodePagesMenu есть описание комбинации Ctrl+H, которая переключает параметр Codepages.CPMenuMode. Однако, нигде нет упоминания об этом параметре. Надо ли добавить? Или если параметр напрямую управляется через UI, то его не описывают и даже не упоминают там, где описан UI?
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

"Lost in Translation"

Post by DrKnS »

С возвращением.
Kadaner wrote: Tue 21 Aug, 2018 05:04 если параметр напрямую управляется через UI, то его не описывают и даже не упоминают там, где описан UI
Да, если UI полностью покрывает какой-либо параметр, то достаточно описания UI.
Post Reply

Return to “Development”