View Issue Details

IDProjectCategoryView StatusLast Update
0001988Far ManagerPlugins API.Editorpublic2018-11-15 10:02
ReporterNightRoman Assigned Tovskirdin  
PrioritynormalSeverityminorReproducibilityalways
Status assignedResolutionopen 
Product Version3.0 
Summary0001988: EF_CREATENEW не работает
DescriptionСогласно энц -- "Создать новый файл на диске. Вызов редактора с этим флагом аналогичен вызову редактора по Shift+F4 в панелях.".

Это не так. По моим наблюдениям EF_CREATENEW вообще ни на что не влияет. Есть файл или нет файла на диске, С флагом или БЕЗ флага все работает одинаково.

Форум:
http://forum.farmanager.com/viewtopic.php?f=8&t=3416
TagsNo tags attached.
Build

Relationships

related to 0000590 new EF_CREATENEW и открытие редактора при пустом имени файла 

Activities

vskirdin

2012-01-17 08:32

administrator   bugnote:0008434

простенький плагин давайте

NightRoman

2012-01-17 10:25

reporter   bugnote:0008435

возьмите HelloWorld из набора плагинов и поставьте там вызов Editor

vskirdin

2012-01-17 12:17

administrator   bugnote:0008437

build 2400

NightRoman

2012-01-17 12:36

reporter   bugnote:0008438

Оперативно, спасибо. Но либо я слеп, либо ничего не поменялось. Как теперь этот флаг должен работать? Его значение-то и по энц. не слишком понятно. Я все проверю, но не уверен, что именно надо проверить. Пока не вижу разницы.

vskirdin

2012-01-17 13:03

administrator   bugnote:0008439

Info.Editor(nullptr,nullptr,0...)
вернет ошибку
Info.Editor(nullptr,nullptr,EF_CREATENEW...)
откроет noname файл, при F2 появится диалог SaveAs
Info.Editor("%TEMP%\\foo.bar",nullptr,EF_CREATENEW...)
откроет "%TEMP%\\foo.bar" (есть он или нету - пофигу), при F2 файл сохранится
Info.Editor("%TEMP%\\foo.bar",nullptr,0...)
вернет ошибку, если файла нет (? не помню)

Denis

2012-01-17 13:11

reporter   bugnote:0008440

Может, конечно, не сюда, но теперь (2400)
если сделать в ком.строке
"edit:<abc"
то, почему-то, открывается 2 окна редактора

NightRoman

2012-01-17 13:17

reporter   bugnote:0008441

Хорошо, я все подробно проверю и отпишусь.

Так уже лучше. Но зачем вообще так сложно? Пока не поздно - предложение такое выкинуть EF_CREATENEW вообще. И разрешить пустое имя файла.

Т.е.
- имя пустое -- открывается файл без имени Ф2 спросит
- имя непустое и существует файл -- открывает его
- имя непустое и не существует файл -- отрывает пустой новый файл

Зачем усложнять и еще какие-то ошибки вводить? Чем плоха эта схема? Если плугу надо чтобы файл непременно был или не был, то он всегда это до вызова сделает и решит уж правильно как поступить (этот диалог об ошибке может прервать процедуру, которая не должна прерываться, например)

NightRoman

2012-01-17 13:28

reporter   bugnote:0008442

Также я хочу обратить внимание на энц. "Вызов редактора с этим флагом аналогичен вызову редактора по Shift+F4 в панелях" (не только в панелях, кстати Shift+F4 работает). Не была ли изначальная задумка такой, что с флагом именно диалог Shift+F4 должен открыться *до* открытия файла?

Но я не предлагаю так делать. Имхо флаг этот не нужен. То, что никто не замечал, что он не работал наглядно об этом говорит.

NightRoman

2012-01-17 14:01

reporter   bugnote:0008443

Info.Editor("%TEMP%\\foo.bar",nullptr,0...)
 вернет ошибку, если файла нет (? не помню)

-- все равно отрывает файл, хоть и нет его.

P.S. В общем, раз пустое имя теперь разрешено, то я готов закрыть тикет. У себя в Фарнет я оберну это именно таким АПИ, какой мне нужен (то, что предложил выше), теперь это возможно. Но АПИ Фара мне небезразличен тоже, потому и предлагаю подумать об отказе от флага вообще (сдвижку констант только не делайте и никто ничего не заметит, а из энц. вообще убрать упоминание).

NightRoman

2012-01-17 17:08

reporter   bugnote:0008445

Закрываю (от себя), но вам видней, как дальше быть. Кроме того, Denis об этом еще написал
"edit:<abc"
может, поломалось

NightRoman

2012-01-18 07:17

reporter   bugnote:0008447

Кстати, если есть проблемы с пустым именем в качестве начального, то могу предложить "правило нового файла" = имя начинается с "?". Это полезно и не только обхода проблемы пустого файла (если есть такая).

Плюсы:

-- можно задать папку по умолчанию, где создается новый файл (по Ф2 можно поменять, но часто полезно указать умолчательную папку, с пустым именем такое вообще не прокатит)
Пример:
C:\WhereIWant\?

-- можно задать расширение, если по логике плагина известно, что за тип файла создается, то это может быть важно с колорером, даже новый пустой файл начнет правильно краситься со старта
Пример:
?.macro

Это не относится к данному тикету. И новый я не завожу про это (ибо шашечки). Просто мысли вслух.

vskirdin

2012-01-18 13:32

administrator  

farcmds.7z (25,657 bytes)

vskirdin

2012-01-18 13:32

administrator   bugnote:0008448

2Denis: проверь на приаттаченом FarCmds

Denis

2012-01-18 13:41

reporter   bugnote:0008449

Работает.

NightRoman

2012-01-18 14:19

reporter   bugnote:0008450

Стойте, стойте, самое главное не работает - открытый редактор с пустым именем не могу сохранить файл - диалог о том, что фар не может сохранить, и все, остаемся в редакторе.

NightRoman

2012-01-18 14:21

reporter   bugnote:0008451

Уточнение - описанная проблема проявляется при выходе по Esc | F10. По F2 все ОК, появляется диалог для ввода имени.

NightRoman

2012-01-25 14:50

reporter   bugnote:0008481

И еще одна хохма. Если открываем файл с пустым именем в папке, которая read only, то файл залочен (ну может, это от установок зависит). И при последующей попытке сохранять появляются вопросы/предупреждения об этом.

JohnDoe

2014-08-03 16:12

updater   bugnote:0012833

Last edited: 2014-08-03 16:20

Флаг EF_CREATENEW должен относится не только к редакторам с пустым именем.

Предлагаю выделить проблемы редакторов с пустым именем в отдельный тикет.
Вроде бы об этом старый тикет 0000231.

Update: ещё один аналогичный тикет 0000590.

Issue History

Date Modified Username Field Change
2012-01-14 21:12 NightRoman New Issue
2012-01-17 08:32 vskirdin Note Added: 0008434
2012-01-17 10:25 NightRoman Note Added: 0008435
2012-01-17 12:17 vskirdin Note Added: 0008437
2012-01-17 12:17 vskirdin Assigned To => vskirdin
2012-01-17 12:17 vskirdin Status new => feedback
2012-01-17 12:36 NightRoman Note Added: 0008438
2012-01-17 12:36 NightRoman Status feedback => assigned
2012-01-17 13:03 vskirdin Note Added: 0008439
2012-01-17 13:03 vskirdin Status assigned => feedback
2012-01-17 13:11 Denis Note Added: 0008440
2012-01-17 13:17 NightRoman Note Added: 0008441
2012-01-17 13:17 NightRoman Status feedback => assigned
2012-01-17 13:28 NightRoman Note Added: 0008442
2012-01-17 14:01 NightRoman Note Added: 0008443
2012-01-17 17:08 NightRoman Note Added: 0008445
2012-01-17 17:08 NightRoman Status assigned => resolved
2012-01-18 07:17 NightRoman Note Added: 0008447
2012-01-18 13:32 vskirdin File Added: farcmds.7z
2012-01-18 13:32 vskirdin Note Added: 0008448
2012-01-18 13:41 Denis Note Added: 0008449
2012-01-18 14:19 NightRoman Note Added: 0008450
2012-01-18 14:21 NightRoman Note Added: 0008451
2012-01-25 14:50 NightRoman Note Added: 0008481
2012-01-25 14:50 NightRoman Status resolved => assigned
2014-08-03 16:12 JohnDoe Note Added: 0012833
2014-08-03 16:20 JohnDoe Note Edited: 0012833
2018-11-15 10:02 JohnDoe Relationship added related to 0000590