SynWrite (Syn2)

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

480499497
Сообщения: 73
Зарегистрирован: Вс сен 19, 2010 05:17

Сообщение 480499497 »

В том то и дело, что пока син выполняет >%Temp%\synWr$$.txt
он не может обратиться к файлу пока не завершит запись, а она не закончиться так как демон работает постоянно.
Но ситуация проясняется.

Думаю стоит попробовать реализовать или загрузку строки не в файл а в масив, либо же сделать опцию которая будет регулировать из какого файла делать загрузку и при каком событии.

Сейчас в голову пришла идея смотри.
при выполнении акого сложного вызова

Код: Выделить всё

cmd /c start cmd /k "c:\Program Files\nodejs\Node.exe" "d:\dev\server.js"
Происходит вызов нового процесса с выводом в консоль ответа обработчика не в прямом потомке командной строки от Син а в НОВОМ процессе командной строки. Можно доработать строку вызова таким образом что бы формировать НОВЫЙ файл отчета, к примеру synTemp$$.txt

Код: Выделить всё

cmd /c start cmd /k '"c:\Program Files\nodejs\Node.exe" "d:\dev\server.js">%Temp%\synTemp$$.txt'
Почему нужен имено новый? Потому что сейчас при попытке добавить в synWr$$.txt возвращается ответ
The process cannot access the file because it is being used by another process.

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

Тоесть три опции получается:
Путь файла отчета внешнего обработчика
Время интервала опроса файла
Режим перезаписи панели Вывода

Таким образом мы сможем производить вывод консоли от внешнего обработчика который будет НЕЗАВИСИМО работать от самого Син.

п.с.
пока что же, я наблюдаю ответы Node.exe в черном окне CMD пускай не идеальный вариант но работает.

Posted after 10 minutes:

меня осинило. Всё проще чем мы думали.
ты говорил
cmd.exe /c"здесь комстрока" >%Temp%\synWr$$.txt
просто замени cmd.exe /c на
cmd /c start cmd /k
и стандартный вариант с synWr$$.txt должен заработать как нужно в новом процессе.

п.с. в нашем случае нужно правда вместо /k писать /c что бы консоль пропадала.
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

-просто замени cmd.exe /c на
cmd /c start cmd /k

Чтото не вижу как он заработает. все равно первый cmd будет ждать завершения процесса-но не дождется...
480499497
Сообщения: 73
Зарегистрирован: Вс сен 19, 2010 05:17

Сообщение 480499497 »

команда START запускает новый процесс без ожидания его завершения.
что бы cmd начал ждать с командой start нужно применять параметр /w а без него это что то вроде асинхронного запуска. Дочирний процес запускается, а родительский продолжает свою работу забывая о том что у него был произведен вызов.
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

Это да. но после запуска 2й консоли через start первая закроется, вывод ее -почти никакой- покажется в Сине. т.е. вывод демона не захватится. тут надо городить опции типа предложенных. Неохота для такого спецслучая...
480499497
Сообщения: 73
Зарегистрирован: Вс сен 19, 2010 05:17

Сообщение 480499497 »

ну впринципе да... файл будет сформирован пустой.

Но нам ничто не мешает доработать вызов, что бы файл отчета формировался второй консолью а не той что закрывается.

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

Это попроще чем делать все эти опции.
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

еще: чтение вывода(другого) каждые 5 сек может быть плохо: замедлится реакция Сина, и ухудшится навигация по списку вывода- список будет дергаться и т.д.
480499497
Сообщения: 73
Зарегистрирован: Вс сен 19, 2010 05:17

Сообщение 480499497 »

Ладно, тогда оставим это на как нибудь потом.
как я и говорил в самом начале, через командную строку это так... вариант для ленивых.
Впринципе я себе вариант вывода информации сделал уже.
Единственое что я тебя попрошу сделать, это
выделить функцию парсинга synWr$$.txt в отдельную опцию.
Что бы можно было в ручную её вызывать по горячей кнопке независимо от того есть ли автоматическое перехватывание строк или стоит выключено.

я тогда схитрить могу

поставлю не делать перехват сток, сформирую его в ручную (своими средствами), и потом горячей кнопкой (Ф4 например) заполнять панель ответа из формированого synWr$$.txt

Тоесть всего одна опция в меню ВНЕШНИЕ ИНСТРУМЕНТЫ
всунь туда поле для определения горячей кнопки для вызова парсинга.
Остальное впринципе и не важно будет.

п.с. ну и ОБНОВИТЬ в контекстном меню самой панели вывод тоже будет в тему.
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

сделаю в общем списке клавиш. Ладно
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

Avada
как лучше перевести [x]Wrap search? Перенос поиска -криво. Зациклить поиск-не ахти.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

"Циклический поиск" или "По всему тексту".
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
kvichans
Сообщения: 453
Зарегистрирован: Сб янв 21, 2006 12:03
Откуда: Москва

Сообщение kvichans »

Смотрю последний History

Код: Выделить всё

+ help topic "Misc -- Customizing Status Line"
Полезно. Пока можно использовать только

Код: Выделить всё

{LineNum} Caret's line number 
{ColNum} Caret's column number 
{TotalLines} Total lines count 
{TotalChars} Total characters count 
{SelLines} Number of selected lines 
{SelCols} Number of selected columns, for column blocks 
{SelChars} Number of selected characters 
- Надеюсь список будет расширяться. Например, хотелось бы сюда вставить дату последней модификации в полном формате (как в Свойствах: 01.11.2012 23:55:59) или в компактном (01.11.12 23:55).
- Поскольку формирование текста доверено пользователю, то логично было бы дать ему же управление шириной панели, где этот текст появится
Win7x64(1600x900), TC8.50x32, SynWrite 6.19, CudaText 1.3.14, UV 6.5.0.0
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

Да, это логично, сделаю
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

+ ini: пар-р задания размера статуса + макро {FileSize} {FileDate} {Filedate2}
beta
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

+ тип вывода "Replace word" в ext.tools
mp3svala
Сообщения: 50
Зарегистрирован: Вс фев 26, 2012 23:49

Сообщение mp3svala »

Alextp писал(а):+ ini: пар-р задания размера статуса + макро {FileSize} {FileDate} {Filedate2}
beta
интересное нововведение, ещё бы само поле для отображение расширить, а то не всё влезает
Ответить