View Issue Details

IDProjectCategoryView StatusLast Update
0001198Far ManagerMacropublic2014-10-27 10:44
ReporterJohnDoeAssigned Tovskirdin 
PrioritynormalSeverityminorReproducibilityalways
Status assignedResolutionopen 
Platformx86OSWindowsOS VersionXP SP2
Product Version2.0 
Target VersionFixed in Version 
Summary0001198: Неполадки с Editor.Set
DescriptionНевозможно изменить значения 6, 8, 12, 13, 14, 16, 17, 18

Например, вот что в Фаре 2, без реестра:
(Единственный плагин - FarCmds)

14, 17, 18 = 0 и не меняет своего значения
6, 8, 13 = 1 и не меняет своего значения
16 = 1242184 и не меняет своего значения
12 = ~!%^&*()+|{}:"<>?`-=\[];',./

Steps To Reproduce%value=2;
%idx=0;
$While(%idx<=20)
    Editor.Set(%idx,%value)
    msgbox("Trying set "+%idx+" to "+%value,"Now: "+Editor.Set(%idx,-1))
    %idx=%idx+1;
    sleep(200)
$End
Additional Information1) http://forum.farmanager.com/viewtopic.php?p=54903#p54903

2)
Не проверяется тип аргументов
Editor.Set("string",1)
Editor.Set(1,"string")

3) В Far 1.75 - та же картина
TagsNo tags attached.
Build

Activities

DrKnS

2009-12-04 20:17

administrator   bugnote:0004672

По поводу 6 и 16.
Как ты себе представляешь [изменение] опций "Use ANSI code page when creating new files" и "Allow editing files opened for writing" для [текущей_копии редактора]?

JohnDoe

2009-12-04 20:19

updater   bugnote:0004673

А я-то причём? Это Валентин придумал.
Но если хотите то и я представляю: ShiftF4

DrKnS

2009-12-04 20:26

administrator   bugnote:0004674

> ShiftF4

Неа. Editor.Set работает именно с текущим экземпляром редактора. А для уже открытого редактора изменение 6 и 16 бессмысленно, т.к. влияют они только на процесс открытия, потому и опций одноименных в диалоге по AltShiftF9 нет.

Я не знаю, зачем Валя их добавил, разве что по Editor.Set(x,-1) текущее значение получить.

vskirdin

2009-12-04 20:29

administrator   bugnote:0004675

Уф... ну что я могу сказать...
эта функция должна влиять только на текущую открытую сессию редактора.
возможно часть "сетов" здесь лишняя... добавлена по инерции.
обсуждаемо

JohnDoe

2009-12-04 20:56

updater   bugnote:0004676

DrKnS
Если _в_редакторе_ нажать ShiftF4 то по идее всё должно сработать.
(вроде бы получалось раньше)

DrKnS

2009-12-04 21:15

administrator   bugnote:0004677

Если такой трюк работал раньше - то это был баг.

JohnDoe

2009-12-04 21:38

updater   bugnote:0004678

Насчёт бага - спорно. Вроде никому не мешало.
То же вероятно касается и 5 - Автоопределение таблицы символов

Впрочем лично мне 5, 6 и 16 ни разу ещё не понадобились, и если починят всё кроме них - мне будет достаточно.

JohnDoe

2009-12-04 21:53

updater   bugnote:0004679

Last edited: 2010-06-20 21:05

View 2 revisions

Раз уж пошёл такой оффтопик то вот это вообще не отражено
[x] Case sensitive
[x] Whole words
[x] Reverse search

vskirdin

2009-12-04 23:01

administrator   bugnote:0004680

нет мире совершенства :-)

vskirdin

2010-02-20 20:48

administrator   bugnote:0004991

> Не проверяется тип аргументов
Ну, я бы не сказал. Здесь речь идет не о проверке, а о преобразовании первого аргумента в число.
Конструкт:
Editor.Set("string",1)
выставит табуляцию в 1 символ, т.к. atoi("string") вернет 0.
здесь atoi - функция, которая строку преобразует в число.
Но!
Editor.Set("3",1) или Editor.Set(3.14,1) или Editor.Set("3.14",1)
честно заставит редактор при помощи Del удалять помеченные блоки.

SUSim

2010-06-20 23:05

reporter   bugnote:0005491

5,6,16 действительно не нужны.
8,9,14 не знаю... (могут пригодиться, но маловероятно)
Можно для 5 вместо "Автоопределение таблицы символов" сделать "Текущая таблица символов". А вот Notes(0004679) было бы очень не плохо, и 12,13,17,18 попользоваться бы.

SUSim

2011-10-29 01:03

reporter   bugnote:0007963

Очень хочу чтобы 12 опцию вывели из ридонли!!!
или сделайте настраиваемыми символы-разделители слов (по хорошему с привязкой к типу файла)...

vskirdin

2011-11-10 11:54

administrator   bugnote:0007973

build 2265
В Editor.Set() стали RW следующие опции: 8, 12, 13, 14, 17, 18

JohnDoe

2011-11-10 14:12

updater   bugnote:0007975

а) 6 и 16 = RO, но об этом нигде не сказано. Стоит добавить примечание.
б) При аргументе 16 функция возвращает не 0/1, а нечто непонятное.
Надо исправить или задокументировать.

vskirdin

2011-11-10 16:21

administrator   bugnote:0007976

а) в рабочей версии Писания №3 написано:
"Значения опций 6 и 16 изменить нельзя."
оно?
б) проверь в своей конфиг-базе что у тебя написано для EditOpenedForWrite

alexy

2011-12-23 15:14

administrator   bugnote:0008211

?

vskirdin

2011-12-31 12:40

administrator   bugnote:0008290

Я так думаю, что с этим Инцом мы решили. Закрываем?

JohnDoe

2012-01-02 13:54

updater   bugnote:0008302

Я ещё не проверил что у меня в EditOpenedForWrite...

JohnDoe

2012-01-04 18:32

updater   bugnote:0008312

По Писанию:

1)
В описании сказано "Для текущей копии редактора изменить настройки."
Правильнее было бы "Для текущей копии редактора получить/изменить настройки."
А ещё лучше "Получить/изменить настройки текущей копии редактора".

2)
Седьмая опция описана как "Курсор за пределами строки", что как-то непонятно. Вероятно надо изменить на "Разрешить курсор за пределами строки"

3)
Ниже таблицы:
"Возвращает предыдущее значение опций или -1, если данные указаны некорректно."
Предлагаю дополнить:
"Возвращает предыдущее значение опций или -1, если данные указаны некорректно, или функция вызвана не из редактора"

JohnDoe

2012-01-04 18:33

updater   bugnote:0008313

Last edited: 2012-01-04 19:54

View 3 revisions

Проверил значение EditOpenedForWrite - в базе "1", а функция возвращает "-1"

Отключил [ ] Allow editing files opened for writing, сохранил базу.
Опять проверил EditOpenedForWrite - в базе "0", а функция всё равно возвращает "-1"

JohnDoe

2012-01-04 18:39

updater  

editor.set.testmacro.txt (396 bytes)
ShiftF4
CtrlY
Enter
mmode(1,0)
%idx=0;
$While(%idx<=20)
	$Rep(3)
		%value=RCounter-1;
		%oldvalue=Editor.Set(%idx,-1);
		$If(%value!=%oldvalue)
        	        Editor.Set(%idx,%value);
			%newvalue=Editor.Set(%idx,-1);
		        $If(%newvalue!=%value)
				Print("Failed to set "+%idx+" to "+%value+" ["+%newvalue+"]\n")
		        $End
	        $End
	$End
	%idx=%idx+1;
$End

JohnDoe

2012-01-04 19:29

updater   bugnote:0008315

Ещё престранно ведёт себя опция 12.
Её значение невозможно поменять.
Но если опросить его с помощью "-1", то значение менятся на "-1".

vskirdin

2012-01-10 13:49

administrator   bugnote:0008337

1. писание поправил
2. EditOpenedForWrite починил.
3. что-то не так с 12-й опцией... пойду смотреть.

vskirdin

2012-01-10 15:13

administrator   bugnote:0008338

build 2356

JohnDoe

2012-02-01 14:01

updater   bugnote:0008514

Last edited: 2012-02-01 14:20

View 3 revisions

Билд 2427:
2. Чекбокс "[ ] Show white space" в настройках редактора теперь 3-позиционный: [?] - отображать пробелы, табуляции и EOF, [x] - отображать еще и EOL.
   В апи - EOPT_SHOWLINEBREAK, ESPT_SHOWWHITESPACE(1|2)

Надо бы обновить Писание (опция 20).
Как я понял ?=2, x=1.

P.S.
Не пора ли актуальную Энциклопедию выложить?

JohnDoe

2012-02-01 14:19

updater   bugnote:0008515

Last edited: 2012-02-01 18:51

View 2 revisions

Объясните смысл изменения этого параметра в текущей копии редактора:

5 Автоопределение таблицы символов

DrKnS

2012-02-01 14:27

administrator   bugnote:0008516

Их быть не должно.

JohnDoe

2012-02-01 18:56

updater   bugnote:0008520

Тогда надо запретить менять значение 5 (так же как запрещено у 6 и 16).
А вообще конечно странные это опции: в открытом редакторе их нельзя изменить, а при закрытом - невозможно даже получить их значение (потому что функция работает только в редакторе).

Предлагаю выкинуть эти опции, чтоб не вводили в заблуждение.
Или хотя бы выделить их в отдельную табличку.

SUSim

2012-02-01 22:23

reporter   bugnote:0008522

я так понимаю эти опции просочились чисто из кода - так можно было показать всё с наименьшими трудозатратами...
по хорошему
5 убрать
6 можно оставить (файл же можно создать и из редактора...)
16 убрать

если бы не было 13 17 18... а так всё время хочется остальные опции поиска поменять... :)

и еще как узнать включена статусная строка или нет?

JohnDoe

2012-02-02 16:02

updater   bugnote:0008528

>6 можно оставить (файл же можно создать и из редактора...)
всё равно 6 изменить невозможно, а про создание из редактора см выше: http://bugs.farmanager.com/view.php?id=1198#c4673

SUSim

2012-02-03 00:54

reporter   bugnote:0008535

>...
я же говорил МОЖНО... не будет - обойдусь...
Мне вот интересно, зачем внесли в эту функцию настройки поиска, причем не все? хотелось бы большего если есть :)

ul

2012-02-07 08:00

reporter   bugnote:0008547

Far 3.0 build 2431 x86 Windows-7

ShiftBS.farconfig

<?xml version="1.0" encoding="UTF-8" ?>
<farconfig>
  <macros>
    <keymacros>
      <macro area="Dialog" key="ShiftBS" flags="DisableOutput" description="Converts the word before cursor using XLat function"><text>%dw=editor.set(12,""); CtrlShiftLeft $XLat CtrlRight editor.set(12,%dw);</text></macro>
      <macro area="Editor" key="ShiftBS" flags="DisableOutput" description="Converts the word before cursor using XLat function"><text>%dw=editor.set(12,""); $SelWord CtrlIns $XLat CtrlRight editor.set(12,%dw);</text></macro>
      <macro area="Shell" key="ShiftBS" flags="DisableOutput|NotEmptyCommandLine" description="Converts the word before cursor using XLat function"><text>%dw=editor.set(12,""); CtrlShiftLeft $XLat CtrlRight editor.set(12,%dw);</text></macro>
    </keymacros>
  </macros>
</farconfig>

В редакторе функция %dw=editor.set(12,""); работает замечательно.
А в области командной строки и диалогах функция %dw=editor.set(12,""); не работает, - видимо, отсутствует.
Как в командной строке и диалогах выделить слово между пробелами ?
Чтобы русское слово, типа "этаж", набранное на латинском регистре как 'nf; , можно было перекодировать всё целиком, а не его кусочек.

ccaid

2013-06-07 15:47

reporter   bugnote:0011112

опция 18 по-прежнему не влияет на флажок регэспов (и не считывает его)
far 3.0.3443

alexy

2013-08-22 15:19

administrator   bugnote:0011349

?

Issue History

Date Modified Username Field Change
2009-12-04 19:53 JohnDoe New Issue
2009-12-04 20:17 DrKnS Note Added: 0004672
2009-12-04 20:19 JohnDoe Note Added: 0004673
2009-12-04 20:26 DrKnS Note Added: 0004674
2009-12-04 20:29 vskirdin Note Added: 0004675
2009-12-04 20:56 JohnDoe Note Added: 0004676
2009-12-04 21:15 DrKnS Note Added: 0004677
2009-12-04 21:38 JohnDoe Note Added: 0004678
2009-12-04 21:53 JohnDoe Note Added: 0004679
2009-12-04 23:01 vskirdin Note Added: 0004680
2010-02-20 20:48 vskirdin Note Added: 0004991
2010-02-21 16:22 alexy Status new => assigned
2010-02-21 16:22 alexy Assigned To => vskirdin
2010-06-20 21:05 JohnDoe Note Edited: 0004679 View Revisions
2010-06-20 23:05 SUSim Note Added: 0005491
2011-10-29 01:03 SUSim Note Added: 0007963
2011-11-10 11:54 vskirdin Note Added: 0007973
2011-11-10 11:54 vskirdin Status assigned => feedback
2011-11-10 14:12 JohnDoe Note Added: 0007975
2011-11-10 14:12 JohnDoe Status feedback => assigned
2011-11-10 16:21 vskirdin Note Added: 0007976
2011-12-23 15:14 alexy Note Added: 0008211
2011-12-31 12:40 vskirdin Note Added: 0008290
2011-12-31 12:40 vskirdin Status assigned => feedback
2012-01-02 13:54 JohnDoe Note Added: 0008302
2012-01-02 13:54 JohnDoe Status feedback => assigned
2012-01-04 18:32 JohnDoe Note Added: 0008312
2012-01-04 18:33 JohnDoe Note Added: 0008313
2012-01-04 18:39 JohnDoe File Added: editor.set.testmacro.txt
2012-01-04 19:21 JohnDoe Note Edited: 0008313 View Revisions
2012-01-04 19:29 JohnDoe Note Added: 0008315
2012-01-04 19:54 JohnDoe Note Edited: 0008313 View Revisions
2012-01-10 13:49 vskirdin Note Added: 0008337
2012-01-10 15:13 vskirdin Note Added: 0008338
2012-01-10 15:13 vskirdin Status assigned => feedback
2012-02-01 14:01 JohnDoe Note Added: 0008514
2012-02-01 14:01 JohnDoe Status feedback => assigned
2012-02-01 14:02 JohnDoe Note Edited: 0008514 View Revisions
2012-02-01 14:19 JohnDoe Note Added: 0008515
2012-02-01 14:20 JohnDoe Note Edited: 0008514 View Revisions
2012-02-01 14:27 DrKnS Note Added: 0008516
2012-02-01 18:51 JohnDoe Note Edited: 0008515 View Revisions
2012-02-01 18:56 JohnDoe Note Added: 0008520
2012-02-01 22:23 SUSim Note Added: 0008522
2012-02-02 16:02 JohnDoe Note Added: 0008528
2012-02-03 00:47 SUSim Note View State: 0008522: private
2012-02-03 00:47 SUSim Note View State: 0008522: public
2012-02-03 00:54 SUSim Note Added: 0008535
2012-02-07 08:00 ul Note Added: 0008547
2013-06-07 15:47 ccaid Note Added: 0011112
2013-08-22 15:19 alexy Note Added: 0011349