Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Syn (Lister plugin) 
Author Message
sepa



PostPosted: Fri Aug 18, 2006 22:47    Post subject: Reply with quote

Quote:
С версии 0.9 начались гиганские проблемы с Ctrl+Z.

Вполне может быть, потому что сейчас ковыряемся чтобы undo/redo работало с CodeFolding и даже что то получается =). Я правда описанный баг не замечал ни разу.
Quote:
Строка для запуска cscript Param2Console.vbs q qq qqq

Так в том то и дело что одной строкой не обойтись. Посмотри для примера любой php макрос из дистрибутива. Там видно что скрипту передается весь текст файла, выделенный текст и т.д. А они могут содержать любые символи, в том числе и сами быть кодом на VB. И еще одно, для исполнения vb скрипта нужен отдельный парсер? Давай может пока начнем с таких языков у которых парсер в винду встроен? Например js или wsh. Для php можно большие параметры передавать через серверный массив, который их читает из глобальных переменных окружения. Но тут тоже есть свои минусы, поэтому сейчас реализовано немного по другому:
Выделенный текст и тест файласохраняются в системную темп-папку как SYNsel.~tmp и SYNtxt.~tmp.
Потом генерится шапка вида

<?
$_SERVER['Text']=get_file_contents('c:\path\to\tmp\SYNtxt.~tmp'); //The TEXT of the open file.
$_SERVER['SelectedText']=get_file_contents('c:\path\to\tmp\SYNsel.~tmp'); //SELECTED TEXT.
$_SERVER['FileName']='name.php'; //The name of the open file.
$_SERVER['FileSaved']=0; //1 - File is SAVED; 0 - File is NOT SAVED.
$_SERVER['CurX']=12; //Cursor position. CHAR POSITION.
$_SERVER['CurY']=15; //Cursor position. LINE POSITION.
$_SERVER['SelectedBlockX']=0; //Selected text bounds. LEFT.
$_SERVER['SelectedBlockY']=0; //Selected text bounds. TOP.
$_SERVER['SelectedBlockX1']=40; //Selected text bounds. RIGHT.
$_SERVER['SelectedBlockY1']=10; //Selected text bounds. BOTTOM.
?>

и присоединяется к запускаемому макросу. Т.е. если макрос был:
<?
$_SERVER['SelectedText']="<b>{$_SERVER['SelectedText']}</b>";
while (list($var, $value) = each($_SERVER)) print "$var=$value".chr(27);
?>

то получаем для исполнения

<?
$_SERVER['Text']=get_file_contents('c:\path\to\tmp\SYNtxt.~tmp'); //The TEXT of the open file.
$_SERVER['SelectedText']=get_file_contents('c:\path\to\tmp\SYNsel.~tmp'); //SELECTED TEXT.
$_SERVER['FileName']='name.php'; //The name of the open file.
$_SERVER['FileSaved']=0; //1 - File is SAVED; 0 - File is NOT SAVED.
$_SERVER['CurX']=12; //Cursor position. CHAR POSITION.
$_SERVER['CurY']=15; //Cursor position. LINE POSITION.
$_SERVER['SelectedBlockX']=0; //Selected text bounds. LEFT.
$_SERVER['SelectedBlockY']=0; //Selected text bounds. TOP.
$_SERVER['SelectedBlockX1']=40; //Selected text bounds. RIGHT.
$_SERVER['SelectedBlockY1']=10; //Selected text bounds. BOTTOM.
?>
<?
$_SERVER['SelectedText']="<b>{$_SERVER['SelectedText']}</b>";
while (list($var, $value) = each($_SERVER)) print "$var=$value".chr(27);
?>

В конце макроса идет вывод всех параметров в консоль. Эта строка одинакова во всех файлах и можно было бы ее и прогой дописывать, но делал так чтобы формат был совместим с phpEE. (у меня остались от него макросы свои)
Так вот наверно для любого языка можно сделать. Приведите какая должна быть тогда шапка, как сбросить все переменные обратно в консоль в этом формате, и как запустить сам макрос. (Например: "php.exe macro.php")
Quote:
Syn 0.9 - при попытке просмотра rtf-файла TC вылетает, при отключении Syn 0.9, rtf работает

Это просто мега прикол. В листере что то наворочено для просмотра rtf файлов, да так что это окошко вылазит поверх окна плагина когда выделять начинаешь. У меня так и Syn и SynPlus глючат. Непонятно как бороться, через syn.exe rtf нормально открывались. А валилось из-за того что я перехватываю окно листера, а при просмотре rtf там еще и одно окно вылазило! =) Вобщем сейчас если расширение rtf, то окно не перехватывается, поэтому если закрывать по крестику то не будет кнопки 'Cancel'. Но баг с появлением второго окна остался, надо писать Гислеру.

v 1.0

  • Shortcuts customization
  • Small bug when detecting extention for highlighter
  • Wrong position of Codepage & LineEndings popups when style non OfficeXP
  • Collapse level 0/1 added to open by default settings
  • Some bugs with repaint of toolbars when style is 'default' in syn.exe
  • Now search for space char works in Ctrl-R
  • Optionally saving of .bak files
  • Bug with view position in history when WordWrap enabled
  • Simple integration with phpExpertDebugger (www.ankord.com),Ctrl-F5 - set/clear breakpoint
  • Included files recognition and parsed Vars/Funcs added to ACP (example in php.hgl)
  • Seldom crush when selecting text
  • Reads files opened for writing by other application
  • Reads full contents in binary files (dont stops at first #0 char)
  • Crush when open *.rtf files

Наконец добавил парсинг include/require файлов в CodeExplorer с добавлением в ACP, что давно хотел. Пока IncludeDetectString прописана только в php.hgl. Вероятно для других языков это и не актуально... для них и так IDE есть.
Шоркуты теперь можно редактировать. Список состоит из двух частей: шоткаты программы и самого редактора. Некоторые действия повторяются (Copy, Paste ...) для того чтобы можно было назначить несколько шорткатов на одно действие. 'Copy text as unicode' работает только если шоткат назначен на программу, а не редактор. Остальные из дублирующих действий назначены только на редактор, т.к. так они быстрее работают. Можно назначить и действие и на среднюю кнопку мыши, но доступно только для програмных шорткутов.
_________________
Syn
View user's profile Send private message ICQ Number


Powered by phpBB © 2001, 2005 phpBB Group