View previous topic :: View next topic |
Author |
Message |
sepa
Joined: 12 Jul 2006 Posts: 42
|
(Separately) Posted: Fri Aug 18, 2006 22:47 Post subject: |
|
|
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 |
|
Back to top |
|
 |
KF-121

Joined: 13 Feb 2006 Posts: 90
|
(Separately) Posted: Sat Aug 19, 2006 13:47 Post subject: |
|
|
Я уже писал но еще раз попрашу.
Сдеть диалоге поиска кнопку для вывода строк, где встречается то что искали. Либо эту фичу прикрутить на кнопку Find All and Mark сгалочко выводить такое окно или нет и чтобы была возможность копировать в буфер весь этот список. Аналог как в UltraEdit. Очень удобная фича. Сильно помогает на работе.
Еще пару замечаний
3. Не переходит по Ctrl по функциям если не открыт Code Explorer. Я так понимаю что фунции читаются только тогда когда открыт Code Explorer.
4. Глюкнутый Hint для Quick Search, остается тень посленнего, и не как ее не удалишь, пока тачку не перегрузишь.
Еще можно чтобы найденные функции он автоматически в ставлял в .acp файл
и раскажи про формат файла. Что пишеться после |.
Также может когда нибудь будет реализованно (надеюсь )
Есть у меня в скрипте функции которые объявленны в определенном(ых) файле(ах), так вот можно также сделать навигачию по этим функциям из моего скрипта. Поясняю гдето в настройках указываешь папку с этими файлами, а лучше прикрутить это к цветовой схеме. он там ищет все функции добавляет в их в список джля навигации, а открывать файл в новом окне ели функциия находится в другом файле.
Еще одна просьба, у кого с англицким пролохо, писать изменения в плагине на русском, хотябы на форуме. _________________ Во всем виновато КАКАДУ!
--------------------------------
IIIypuk©KF-121 |
|
Back to top |
|
 |
sepa
Joined: 12 Jul 2006 Posts: 42
|
(Separately) Posted: Sun Aug 20, 2006 09:56 Post subject: |
|
|
Quote: | Я уже писал но еще раз попрашу. |
А я еще раз отвечу, что совершенно не заинтересован в этом пока. Если тебе надо список строк, в которых встречается подстрока получать - напиши макрос.
3. Ага, надо же электричество экономить =)
4. Тачку перегружать не надо, попробуй просто закрыть тотал. У меня этого глюка сейчас вроде нигде нет, но в версии 0.1 он был для хинтов полей статусбара. На кнопках хинты у меня вроде нормально появляются, и на кодекспорере тоже. У тебя только над QuickSearch хинт глючит? А если через syn.exe запустить?
Quote: | Еще можно чтобы найденные функции он автоматически в ставлял в .acp файл |
это зачем?
Quote: | сделать навигачию по этим функциям из моего скрипта |
Я не знаю как програмно открыть новое окно листера. Если кто знает - ткните в линк. А то что ты предлагаешь по папке с файлами, то это смотря сколько там функций. Кодексплорер примитивный. Если ему скормить например для дельфи каждый файл из юзес
Code: | uses
Windows, Messages, SysUtils, Classes, Graphics, Forms,
Dialogs, ImgList, StrUtils, ActnList, Menus, ComCtrls,
ExtCtrls, StdCtrls, unCP, Controls, Clipbrd, shellapi ... |
то это будет несколько тысяч функций и памяти будет жрать и тормозить неплохо. Так что для стандартных функций лучше просто готовый .acp использовать. В основном эта фишка для php была написана. Если надо серьезно файлы на других языках редактировать, то для этого есть специальные IDE и с ними тягаться нет резона =)
Quote: | и раскажи про формат файла |
Ну там я думал и так все ясно, Митяй же разобрался =) Например
array explode(string separator, string string [, int limit]) |Split a string by string (PHP 3, PHP 4, PHP 5)
, где:
1. тип возращаемого значения (не может содержать пробел) показывается перед именем функции в ACP
2. имя функции с параметрами. параметры могут разделятся запятой или ; в таком виде и будут выводится в хите по параметрам
3. описание функции, показывается в заголовке ACP при выборе функции
Т.е. строка состоит из 3 частей. Первые две разделены пробелом. Описание отделено пайпом '|' потому что после последней скобки от функции может еще что нибудь идти с пробелом, например тип возращаемого значения в дельфи. Может и не быть скобок с параметрами. Если нет типа возращаемого значения, то строка должна начинаться с пробела:
Code: | test(param string) : boolean |Description
void exit |Exit from func |
Quote: | Еще одна просьба, у кого с англицким пролохо, писать изменения в плагине на русском, хотябы на форуме. |
постараюсь _________________ Syn |
|
Back to top |
|
 |
KF-121

Joined: 13 Feb 2006 Posts: 90
|
(Separately) Posted: Mon Aug 21, 2006 14:40 Post subject: |
|
|
sepa wrote: | А я еще раз отвечу, что совершенно не заинтересован в этом пока. Если тебе надо список строк, в которых встречается подстрока получать - напиши макрос. |
Макрос не переходит по этим срокам после поиска. Да и макросы поддерживает только PHP. Это не так сложно. Тем болле у тебя большая чать уже реализована на кнопке Find All & Mark, остается забить все это в лист и запомнить на какой строке эта строка. А в компаненте в котором выводится все найденное, вешаешь событие OnClick, и Move Cursor to Line.
Сделать это можно опционально.
sepa wrote: | На кнопках хинты у меня вроде нормально появляются, и на кодекспорере тоже. У тебя только над QuickSearch хинт глючит? А если через syn.exe запустить? |
Сегодня пытался получить этот глюк, но так и не чего не вышло.
А для того чтобы не забивать все это в ручную, а только потом коменты поправил и все.
sepa wrote: | Я не знаю как програмно открыть новое окно листера. Если кто знает - ткните в линк. А то что ты предлагаешь по папке с файлами, то это смотря сколько там функций. Кодексплорер примитивный. Если ему скормить например для дельфи каждый файл из юзес
то это будет несколько тысяч функций и памяти будет жрать и тормозить неплохо. Так что для стандартных функций лучше просто готовый .acp использовать. В основном эта фишка для php была написана. Если надо серьезно файлы на других языках редактировать, то для этого есть специальные IDE и с ними тягаться нет резона =) |
Да в моем случае это несколько может сотен функций. Сделать это можно опционально.
Да можно не окно листера запустать,а твой редактор Syn.exe. _________________ Во всем виновато КАКАДУ!
--------------------------------
IIIypuk©KF-121 |
|
Back to top |
|
 |
Maximus

Joined: 07 Apr 2005 Posts: 927 Location: Украина, Кировоградская обл., г. Знаменка
|
(Separately) Posted: Mon Aug 21, 2006 16:39 Post subject: |
|
|
Если пользоваться не отдельным окном поиска/замены, а присобачить его к верху основного окна, то были замечены пара таких багов:
1. Остается интересный артефакт (горизонтальная полоса)
причем остается он не только в окне Сина, но и во всех остальных и на рабочем столе - в общем везде.
2. Поиск/замена "слова1" - ищем, заменяем и все хорошо.
Но если закрыть это окно специальным крестиком слева и воспользоваться потом быстрым поиском Ctrl+F для "слова2", то при поиске следующего "слова2" по F3 будет искать совсем не "слово2", а "слово1".[/img] |
|
Back to top |
|
 |
sepa
Joined: 12 Jul 2006 Posts: 42
|
(Separately) Posted: Tue Aug 22, 2006 11:48 Post subject: |
|
|
Quote: | Да можно не окно листера запустать,а твой редактор Syn.exe. |
Я уже вроде нашел как листер открывать, только не совсем получается пока =)
Quote: | Остается интересный артефакт |
это тень от хинта поля QuickSearch, по идее баг должен быть исправлен в 1.1 проверьте. (у меня просто и до этого нормально было)
Да, раньше надо было именно через Cancel выходить. Теперь проверяет открыта ли панель
v 1.1
- Шорткуты отображаются в хинтах над кнопками
- Быстрый поск по дереву (частичное совпадение, через контекстное меню) совпадение от начала - нажатие кнопок когда дерево активно
- Хинт с описанием функции если мышку задержать над именем на 1сек.
- Обновляет CodeExplorer при открытии файла даже если панель закрыта. (но не обновляет закрытую панель при дальнейшей работе)
- 'Copy link adress' добавлено в контекстное меню на ссылке
- Ctrl-Click не сбрасывает курсор в начало файла, если функция не найдена
- История навигации по функциям (Alt+Left - назад, Alt+Right - вперед)
- Добавлено еще немного действий для назначения в списке шорткутов
- Найденные функции/переменные добавляются в подсветку, в стили начинающиеся на 'function' и 'var' (если эти стили типа Keywords)
- Match Bracket расширен до Match Token. В дополнение к скобкам {[(< считывает CodeFolding ranges для подсветки парных токенов
- В опциях добавлен цвет для парного токена без пары
- Не сбрасывает позицию курсора в начало файла при Ctrl-[
- Можно сохранить содержимое CodeExplorer в .acp файл (для облегчения создания нового ACP для языка)
Можно придумать подключение дополнительного acp файла. Например через еще одно поле в подсветке в CustomData, или если файл acp лежит в папке с редактироемым файлом. Или просто еще один пользовательский ACP который можно подключить в опциях и он будет для всех языков. В общем не знаю пока как лучше будет.
Еще добавлена подсветка для файлов ACP и небольшое описание по созданию подсветки в папке HL\ _________________ Syn |
|
Back to top |
|
 |
Митяй

Joined: 05 Oct 2005 Posts: 102 Location: Москва
|
(Separately) Posted: Tue Aug 22, 2006 16:35 Post subject: |
|
|
В Syn v1.1
- Неправильно отображается номер версии.
- Перестали действовать кнопки изменеия интерфейса (Code Folding, Special Chars, Show Numbers)
- Не подсвечиваются парные токены из hgl (непарные токены подсвечиваются нормально) |
|
Back to top |
|
 |
sepa
Joined: 12 Jul 2006 Posts: 42
|
(Separately) Posted: Tue Aug 22, 2006 22:13 Post subject: |
|
|
первые два- баги, пофикшу
Насчет подсветки парных токенов. Конкретнее укажи какие токены в какой пдсветке? Для подсветки delphi.hgl нормально подсвечивает begin и end которые там считаны из CodeFolding ranges. При подсветке xhtml.hgl например тэги <td и </td> не будут подсвечиваться потому как их имена состоят из нескольких токенов. ('<' и 'td') Все скобки во всех подсветках у меня нормально светит. _________________ Syn |
|
Back to top |
|
 |
Митяй

Joined: 05 Oct 2005 Posts: 102 Location: Москва
|
(Separately) Posted: Wed Aug 23, 2006 11:21 Post subject: |
|
|
Разобрался. Никогда не подсвечиваются парные токены в комментариях. А проблема была в том, что я использую комментарии для Doxygen (не /* */, а /** */). А в этом случае Syn подсвечивает */ как ошибочный токен. Поведение неприятное, но вполне логичное. |
|
Back to top |
|
 |
KF-121

Joined: 13 Feb 2006 Posts: 90
|
(Separately) Posted: Wed Aug 23, 2006 16:15 Post subject: |
|
|
Syn 1.1
[-]
1. Ctrl + A +Delete = Access Violation at adress ... Причем не как не лечится.
2. Найденные переменные и функции сохраняются криво.
В файле строка
Function SetVarableValue(ThirdDspDis, ThirdKhz, ExtenRange)
в acp
user SetVarableValuevoid |e(ThirdDspDis, ThirdKhz, ExtenRange)
RegEx для функции
(function|sub)\s(?P<name>[a-z_]+[a-z_0-9]+)\s*(\([^)]\))?\s*?
Переменные вроде нормально добовляет. _________________ Во всем виновато КАКАДУ!
--------------------------------
IIIypuk©KF-121 |
|
Back to top |
|
 |
funduk

Joined: 16 Aug 2005 Posts: 1513 Location: Санкт-Петербург
|
|
Back to top |
|
 |
evkogan
Joined: 25 Aug 2005 Posts: 19
|
(Separately) Posted: Thu Aug 24, 2006 18:48 Post subject: |
|
|
Извиняюсь, что долго молчал. На работе запарки.
Из-за этого же пока не видел последних версий, но вроде то о чем пишу в изменениях не написано.
1. Нельзя настроить соотнесение подсветки расширению. ".VBS" почему-то открывает без подсветки. Очень надоело.
2. Открывает все файлы подряд, так как стоит в начале списка, то... Логичьнее сделать при 1 проходе открывать список расширений 1. При 2 список 2 гораздо шире. Что-то такое сделанно в старом hpg_ed. SynPlus тоже прикрутил, что-то похожее, но у него при 2 проходе открывает все файлы, как показала практика это терпимо, но не очень удобно.
Причем если после Syn открывать SynPlus воспринимает это как 2 проход.
По поводу других скриптовых языков.
1. Для VBS/JS в винду встроен парсер. Но их встроенно 2. Один консольный cscript, другой GUI wscript. По умолчанию запускает wscript.
2. Про алгоритм действий для запуска макроса.
Я так понимаю, что скопированный текстовый файл измененный макросом потом копируется на место основнового?
Зачем нужно возвращать параметры из скрипта? Т.е. как то, что вернулось обрабатывает плагин? |
|
Back to top |
|
 |
sepa
Joined: 12 Jul 2006 Posts: 42
|
(Separately) Posted: Fri Aug 25, 2006 12:33 Post subject: |
|
|
2KF-121
1. пофиксил
2. пофиксил, но у тебя строка не верная. Она не отлавливает параметры. Если параметры не нужны то можно просто:
(function|sub)\s(?P<name>[a-z_]+[a-z_0-9]+)
если нужны то
(function|sub)\s(?P<name>[a-z_]+[a-z_0-9]+)\s*(\([^)]+\))?
а еще лучше
(function|sub)\s(?P<name>[a-z_]+[a-z_0-9]+)\s*(?P<param>\([^)]*?\))?
Quote: | Багрепорт на английском форуме. |
У меня с того форума не приходит письмо о регистрации, но он писал про этот баг в англ. комментах, я ему там и ответил.
Quote: | Нельзя настроить соотнесение подсветки расширению |
По умолчанию и так идет подсветка Vbs.hgl и она нормально открывается для файлов vbs. Ты как это настраиваешь?
Quote: | Открывает все файлы подряд, так как стоит в начале списка |
Так поставь в конец списка =) ты хочешь чтобы листер открывал файлы для которых нет подсветки?
По поводу других скриптовых языков.
1. круто, и вроде пашет =)
2. нет, макрос ничего не знает о текстовом файле. Он лишь обрабатывает переменные которые получил, и выводит их все на консоль. Если ничего не менял в некоторых из них, то все равно выводит. Эти 2 темповых текстовых файла сохраняются только для того чтобы заполнить переменные. (Потому как текста может быть много и он может содержать код, так что обыкновенным var='text' здесь не обойтись)
v1.2
Ничего особо нового, просто быстрое обновление изза критических багов
- Ошибка при входе в Setup в режиме QuickView
- Пофикшен 'Read beyond end of file'
- Забытые действия на кнопках 'Code Folding', 'SpecChars', 'ShowNumber', 'RightMargin'
- Ошибка с клавишей 'none' в шорткутах для редактора
- Баг с выделением колонкой, del и потом undo
- Улучшения в отрисовке дерева
- Баг с сохранением в acp функций без параметров
- Баги с сортировкой всего файла, Ctrl-A Del, WordWrap в конце файла
- Баг при перемещении в первую позицию истории навигации по CodeExplorer (Alt-Left)
- Немного увеличена скорость показа окна Setup, баг с показом имени .qc файла в Setup
- Примитивное открытие инклюженых файлов в CodeExplorer через Ctrl-Click
- Баг при выборе цвета (Ctrl-Shift-Up) когда CodeExplorer обновляется
- Немного пофикшены баги CodeFolding, Undo, Redo (thanx DavidCl0nel)
_________________ Syn |
|
Back to top |
|
 |
KF-121

Joined: 13 Feb 2006 Posts: 90
|
(Separately) Posted: Fri Aug 25, 2006 15:00 Post subject: |
|
|
Quote: | 2KF-121
1. пофиксил |
1. Не пофиксил _________________ Во всем виновато КАКАДУ!
--------------------------------
IIIypuk©KF-121 |
|
Back to top |
|
 |
Lev

Joined: 02 Mar 2005 Posts: 392
|
(Separately) Posted: Fri Aug 25, 2006 17:28 Post subject: |
|
|
На страничке плагина написано, что тебе не удаётся повторить баг с выделением, и что он всего у пары человек, буду третьим.
Выделяем кусок текста, отпускаем кнопку мыши, кликаем выделение и не отпуская кнопки тащим его наверх, на панель инструментов - получаем кучу ошибок и вылет |
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|