"Lost in Translation"

Разработка Far.
Post Reply
User avatar
Kadaner
Posts: 16
Joined: Sun 28 Jan, 2018 05:00

"Lost in Translation"

Post by Kadaner » Tue 20 Feb, 2018 04:13

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

Первый вопрос. Каково ожидаемое поведение 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: 5520
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 83 times
Contact:

"Lost in Translation"

Post by zg » Tue 20 Feb, 2018 08:52

баг в дереве скорее всего.

User avatar
Kadaner
Posts: 16
Joined: Sun 28 Jan, 2018 05:00

"Lost in Translation"

Post by Kadaner » Wed 21 Feb, 2018 03:13

Да, похоже. Я потом подебажил и видел, как m_Root сначала устанавливается в содержимое текст-бокса, а потом перезаписывается рутовым фолдером, кажется только в случае, если дерево открывали по Shift+F10. Постараюсь разобраться на выходных.

User avatar
Kadaner
Posts: 16
Joined: Sun 28 Jan, 2018 05:00

"Lost in Translation"

Post by Kadaner » Mon 26 Feb, 2018 05:11

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

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

Если вы всё же считаете, что описание алгоритма сохранить полезно, может ли кто-то сказать, каков порядок "сил" правил форматирования? Правильно ли я понимаю, что это UPPERCASE_ALL > LOWERCASE_ALL > UPPERCASE_FIRST > UNKNOWN?

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

"Lost in Translation"

Post by HaRT » Mon 26 Feb, 2018 13:58

Kadaner wrote:
Mon 26 Feb, 2018 05:11
Сколько пользователей его читало? Не будет ли достаточно сказать что-нибудь расплывчатое
Я пока не читал, но перед тем как применить на большом важном тексте, прочитал бы непременно, и расплывчатое описание лично мне точно не понравилось бы.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
Kadaner
Posts: 16
Joined: Sun 28 Jan, 2018 05:00

"Lost in Translation"

Post by Kadaner » Mon 26 Feb, 2018 23:14

HaRT wrote:
Mon 26 Feb, 2018 13:58
перед тем как применить на большом важном тексте, прочитал бы непременно
Fair enough. Буду переводить и уточнять описание. Вопросы остаются:
  • Каков порядок "сил" правил?
  • Правильно ли я понимаю, что образцы поиска и замены должны иметь одинаковое количество частей после разбиения?
I'll try to reverse-engineer, но если кто-то может сказать, не глядя в код, это поможет.

User avatar
Kadaner
Posts: 16
Joined: Sun 28 Jan, 2018 05:00

"Lost in Translation"

Post by Kadaner » Mon 05 Mar, 2018 05:20

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

Боюсь, что при всём желании, мне не удастся дать вполне точное описание алгоритма. К сожалению, что-нибудь расплывчатое всё равно по углам останется. :( Ну, попробую.

User avatar
DrKnS
Posts: 5064
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 5 times
Been thanked: 178 times

"Lost in Translation"

Post by DrKnS » Mon 05 Mar, 2018 08:01

Kadaner wrote:
Mon 05 Mar, 2018 05:20
а не ожидавшееся мной (uppercase)
Возможно, это баг.

User avatar
Kadaner
Posts: 16
Joined: Sun 28 Jan, 2018 05:00

"Lost in Translation"

Post by Kadaner » Wed 07 Mar, 2018 06:50

Нет, не баг. Это by design. Token, состоящий из одной заглавной буквы, может быть рассмотрен одновременно как Proper case и как UPPER case, а Proper case имеет более высокий приоритет, чем UPPER case. Кстати, это единственный случай, когда сравнительные "силы" правил имеют значение. Все другие tokens удовлетворяют не более чем одному правилу. В общем, странная фича.

User avatar
Kadaner
Posts: 16
Joined: Sun 28 Jan, 2018 05:00

"Lost in Translation"

Post by Kadaner » Tue 21 Aug, 2018 05:04

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

В хелпе про @CodePagesMenu есть описание комбинации Ctrl+H, которая переключает параметр Codepages.CPMenuMode. Однако, нигде нет упоминания об этом параметре. Надо ли добавить? Или если параметр напрямую управляется через UI, то его не описывают и даже не упоминают там, где описан UI?

User avatar
DrKnS
Posts: 5064
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 5 times
Been thanked: 178 times

"Lost in Translation"

Post by DrKnS » Tue 21 Aug, 2018 07:24

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

Post Reply

Return to “Development”