SynWrite (Syn2)

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

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

BezDNaU
Сообщения: 65
Зарегистрирован: Сб май 31, 2008 10:56

Сообщение BezDNaU »

BezDNaU писал(а):Можно ли сделать, чтобы плагин по Ctrl+Q запускался сразу в режиме редактирования. (без нажимания замочков)?
Будет ли вообще когда-нибудь?
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

Будет. см. опцию в Help - "TC Lister Plugin" вечером
BezDNaU
Сообщения: 65
Зарегистрирован: Сб май 31, 2008 10:56

Сообщение BezDNaU »

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

Сообщение Alextp »

Update 3.8.x.
Аватара пользователя
psw
Сообщения: 11
Зарегистрирован: Ср дек 14, 2011 11:03
Откуда: Е-бург
Контактная информация:

SynWrite (Syn2)

Сообщение psw »

1. c:\Documents and Settings\имя\Application Data\SynWrite\имя.adu

Выполняю:
- пишу слово (например): мелисса
- оно автоподчеркивается красной волнистой, т.к. нет в словаре
- последовательно на слове: двойной клик, правый клик, "Добавить"
- красная исчезает, т.к. слово считается добавленным (на самом деле - нет:)
- закрываю SynWrite крестом
- появляется ошибка:
Access violation at address 00613AFB in module 'Sun.exe'.
Read of address 00000210.
Все добавленные в "сеансе" слова не помещаются в adu.

Если же добавляю слово через
Опции-Правописание-Словари-Изменить-Добавить
то ошибки не возникает.

Это происходит у меня только начиная с перехода на версию 3.8.1590.

2. Не нашел в настройках, где можно переопределить местоположение
всех ini-файлов (и файла словаря)^
c:\Documents and Settings\имя\Application Data\SynWrite\
Syn.ini SynSpell.ini SynSpellLearn.adl SynState.ini *.adu
Ну типа как в Total Commander... (включая command line)
А в History - непонятно про %Appdata% :
use Options dlg - Misc - "Move files" button

3. Мне не хватает возможности перемещаться по LeftArrow
в конец предыдущей строки через упор в "стенку" в начале текущей.

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

Сообщение Alextp »

3. опция Редактор- Каретка только в тексте
4. уже есть! У меня работает (не между "видами")
2. положение ini можно делать в папке SW- см. FAQ - portable

Добавлено спустя 3 минуты:

1. баг вижу
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

update(fix бага с spell checker).
480499497
Сообщения: 73
Зарегистрирован: Вс сен 19, 2010 05:17

Сообщение 480499497 »

Alextp привет.
Что на счет моей прозьбы, вынести вызов внешнего обработчика отдельным процессом (см. тут)?
Если можешь реализуй пока что просто чекбокс в опциях что бы вызов происходил через "cmd" это ж не сложно, ЦМД всегда запуститься, и ему на выполнение передать "start -parametr" где -parametr - строка формируемая настройками внешнего обработчика(это ЕХЕ и параметры запуска)

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

Сообщение Alextp »

Можешь написать, как мне потестить это-чтоб именно вызов через cmd давал рез-т? Какую прогу запустить, как именно, сначала без Сина, просто так, а потом через Син, и потом через Син + cmd. А то я не секу в чем нужность
480499497
Сообщения: 73
Зарегистрирован: Вс сен 19, 2010 05:17

Сообщение 480499497 »

Alextp писал(а):Можешь написать, как мне потестить это-чтоб именно вызов через cmd давал рез-т? Какую прогу запустить, как именно, сначала без Сина, просто так, а потом через Син, и потом через Син + cmd. А то я не секу в чем нужность
Нужность в том что я програмировать пробую на Node.js
и когда я редактирую код, и нажимаю горячую кнопку на запуск скрипта через обработчик для проверки его на ошибки и прочее, то если скрипт написан как демон, он просто вешает Син до тех пор пока скрипт работает.
Остановить скрипт в таком случае не получиться так как Син является родителем процесса, и потому приходиться принудитльно убивать процес Син что бы остановить демана (скрипт).
Потому нужно вызывать обработчик отдельно от процесса Син, например через смд. Так будет получаться что обработчик запускается не в Син а отдельно и собственно вешать его не будет. Так можно будет убивать выполняющийся демон без ущерба для данных в Син.
И получиться что мы можем убивать этот процес (который независимо выполняет скрипт) по титульному названию прямо из Син или по названию исполняемого файла (с командной строкой будет собственно cmd.exe). Присвоим гарячую кнопку этой функции и просо выполняем tasskill cmd.exe и деман убирается из памяти а мы как нивчем небывало работаем с скриптом и редактируем его дальше.

пример запуска обработчика впринципе будет выглядеть так:
c:>"c:\Program Files\nodejs\node.exe" NAME PARAM
собственно путь обработчика, Имя скрипта, параметры запуска берем из Син. Это нужно что бы ты реализовал в самом Син вызов cmd.exe с передачей в него самой строки вызова что написана чуть выше.


А в будущем просто можно будет реализовать небольшой ехе и положить его рядом с Син, что бы можно было через него работать с внешними обработчиками и перехватывать из него ответы в консоль и выводить их в консоли ошибок Син. Это собственно конечный вид моей идеи.

п.с. пока что я подумываю что бы пользоваться батниками, с зарание вписаными в них параметрами запуска скрипта, и присвоить гарясие кнопки Ф5 и Ф6 для запуска и остановки скрипта, но так я не получу ответов в консоль и это конечно полный изврат.
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

а) пришли мне скрипт простой, чтобы можно запускать "под node,js". И батник для запуска
б) если пропишеь
имя файла: cmd.exe
пар-ры: /c"c:\Progra~1\nodejs\node.exe Name Param"

это будет ОК?

Добавлено спустя 2 минуты:

-но так я не получу ответов в консоль
Попробуй, вдруг получишь
480499497
Сообщения: 73
Зарегистрирован: Вс сен 19, 2010 05:17

Сообщение 480499497 »

понял как производиться вывод в консоль ошибок в Син. Вставляем файл SynWr$$.txt из TEMP в таком случае, Син способен перехватывать консольные ответы со всего что угодно и с командной строки тоже. Но это никак не влияет на проблему. Батник не помог. Независимо от того запускаю я через:

батник с вызовом нового процесса cmd /c и вызовом скрипта
батник с прямым вызовом скрипта
cmd и передачу параметра /c"node.exe" {FileName}
сразу через node.exe и параметр {FileName}

все 4 варианта вешают Син. Почему это происходит не имею ни малейшего представления. Могу только предположить что как раз из-за перехвата консоли. Син пытается заполнить SynWr$$.txt и будет пытаться это делать до тех пор пока скрипт сервера запущен, а сам файл закрыт для обращения, так как в него Син пытается внести изменения. Тоесть нужно выносить функцию формирования этого файла и вызов внешнего обработчика отдельным процесом а не обрабатывать в Syn.exe (либо реализовывать механизм вызова внешнего приложения так что бы син не вешался, и чтение файла консоли переделывать так что бы или вообще файл не применять а работаь с масивами, к ним доступ не блокируется виндой как к файлу).

В первом варианте описаного мною запуска через батник с вызовом командной строки у нас получается такое дерево процессов:

Syn.exe
run.bat
(либо cmd.exe зависимо от настроек винды)
cmd.exe
node.exe

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

Собственно в этом и загвоздка, вызывать node.exe независимо от Син.

Примеры скрипктов (нужно иметь установленый Node.js)

server.js

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

var http = require("http");

http.createServer(function(request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.write("Hello World");
  response.end();

}).listen(8888);
Что бы вызвать ответ об ошибке, перед строкой }).listen(8888); добавить строку ();
убедиться что скрипт работает http://localhost:8888

run.bat

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

cmd /c"c:\Progra~1\nodejs\node.exe" server.js 
либо если ассоциировать нод и файлы то

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

server.js
Posted after 16 minutes:

п.с. Разумеется если использоваться команду start в батнике вместо обращения к цмд, то будет вызван новый независимый процесс, но в нем нет возможности обмена консолью с родительским процессом, поэтому скрипт будет работать но без перехвата.

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

start "c:\Program Files\nodejs\Node.exe"  server.js
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

понял. попробую. ПК в ремонте, попробую как только. на этом ноуте неудобно.
480499497
Сообщения: 73
Зарегистрирован: Вс сен 19, 2010 05:17

Сообщение 480499497 »

сейчас остановился на вызов внешнего обработчика с такими настройками:

Имя файла: cmd
Параметры: /c start {FileName}

Демон запускается независимо но ответа об ошибках не видно.
я склонен думать что син глохнет имено из-за блокировки виндовсом файла SynWr$$.txt
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

глохнет не "из-за блокировки".Дело в том что пускается такой процесс

cmd.exe /c"здесь комстрока" >%Temp%\synWr$$.txt

-если указана галка "Перехват вывода". если не указана то пускается не смд, а сама комстрока. поэтому и образуется цепочка, и пока комтрока не килнется, вывода не будет.
Ответить