Модераторы: Vitalik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Хранение произвольных параметров в подсветке, И доступ к ним в компоненте 
:(
    Опции темы
Sep.
Дата 15.7.2006, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 22.7.2004

Репутация: 6
Всего: 6



Столкнулся с проблемой хранения различных свойств разных для каждого языка. В каком то смысле они тоже имеют отношение к подсветке и хотелось бы их хранить прямо в файлах подсветки и иметь доступ примерно как сейчас к полям SynUni.Info. Соответственно в редакторе тогда надо бы добавить возможность изменения этих значений.
 Пока хотелось бы хранить такие параметры:
 CommentBlockStart, CommentBlockMid, CommentBlockEnd
 тремя строковыми параметрами можно будет охватить все типы коментариев от простого // в начале каждой строки до блокового /* */
 
 CodeBlockStart, CodeBlockEnd
 начало и конец блоков кода ({}, begin end;) для определения видимости переменных
 
 И еще регексп строки для определения имен переменных, имен функций/процедур, классов и их методов. Тогда надо будет видимо и еще и символ отделения класса от метода ('.', '->') Регексп строка для определения имени подключаемых файлов ( require(lib.php) )
 
 В общем можно было бы стандартизировать такую систему и мы могли бы своих программах использовать универсальные фишки типа Comment/Uncomment или CodeExplorer, FunctionList на базе текущей подсветки.
 
 Конечно можно символы коментария и из атрибутов подсветуи прочитать, но  тогда надо имена атрибутов стандартизировать.
 
 Кто что думает по этому поводу? 
--------------------
Syn - TotalCommander lister plugin |  SynTree - coders sourcebook  
PM MAIL   Вверх
Vitalik
Дата 23.7.2006, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Координатор проекта
Сообщений: 653
Регистрация: 8.11.2004
Где: Ukraine, Kharkov

Репутация: 9
Всего: 12



Сделал в новой версии компонента (2.0b4) возможность хранения произвольных параметров в подсветке, вот только как обозвать это свойство?.. smile
Я пока что назвал его Options, но что-то такое название меня смущает smile

Есть какие-нибудь другие предложения? 
PM MAIL WWW ICQ YIM   Вверх
navykeds
Дата 23.7.2006, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 16.3.2006

Репутация: 3
Всего: 3



Custom 
PM MAIL   Вверх
Sep.
Дата 24.7.2006, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 22.7.2004

Репутация: 6
Всего: 6



Да все равно как обозвать, главное чтобы работало =) Но options это наверно немного не то, это же данные. Может CustomData, UserData или просто Data. Но это не принципиально...
Давайте лучше имена строк в этих данных стандартизируем. Потому как охота сразу в syn0.6 сделать эту фишку =)
Предлагаю, пока:
CommentBlockStart, CommentBlockMid, CommentBlockEnd (коментарий блоком), CommentLine (однострочный кометарий)
CodeBlockStart, CodeBlockEnd (begin,end,{,} - начало и конец блока кода для определения видимости переменных)
ProcedureDetect, FunctionDetect, VariableDetect, IncludeDetect -регексповые строки для детектирования типов данных
Если никто лучше не подскажет, то именно так и сделаю
Для регексповых строк имя должно находиться в Matches[2] (вторых скобках) а дополнительная часть (параметры функции, или часть имени переменной которая служит индексом массива) в Matches[3]
например для переменной php : 
([^\$])(\$[a-z_]+[0-9a-z_]+)(\[[^\]\$]+\])?
мне кажется так удобно будет и, главное что эта система уже работает 

Это сообщение отредактировал(а) Sep. - 3.8.2006, 10:22
--------------------
Syn - TotalCommander lister plugin |  SynTree - coders sourcebook  
PM MAIL   Вверх
Vitalik
Дата 24.7.2006, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Координатор проекта
Сообщений: 653
Регистрация: 8.11.2004
Где: Ukraine, Kharkov

Репутация: 9
Всего: 12



Цитата(Sep. @  24.7.2006,  08:30 Найти цитируемый пост)
Да все равно как обозвать, главное чтобы работало =)

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

Цитата(Sep. @  24.7.2006,  08:30 Найти цитируемый пост)
Но options это наверно немного не то, это же данные.

Согласен.. Я его просто выбрал, так как хотелось бы, чтобы название этого свойства было в множественном числе, а отдельные пункты - в единственном. Options - Option, Customs - Custom... Хотя в последнем случае Customs - это немножко не то.. smile
Гм...
Так пойдет?..
Код
    <CustomData>
        <Entry Name="VariableDetect" Value="([^\$])(\$[a-z_]+[0-9a-z_]+)(\[[^\]\$]+\])?"/>
    </CustomData>


Цитата(Sep. @  24.7.2006,  08:30 Найти цитируемый пост)
CommentBlockMid

Не очень понятно назначение этого свойства, поясни, пожалуйста, и, если не сложно, приведи пример smile

Цитата(Sep. @  24.7.2006,  08:30 Найти цитируемый пост)
Потому как охота сразу в syn0.6 сделать эту фишку =)

Вот только я думаю, что в версиях UniHighlighter 2.0 этого пока лучше не добавлять.. 
Так как это все таки весомое отличие от предыдущих версий 2.0 (и среди объектной структуры и в формате файла)...
Возможно я уже сейчас начну параллельную работу над новой версией 2.2 с новыми возможностями.. Не забывая при этом про стабилизацию версии 2.0 smile 
PM MAIL WWW ICQ YIM   Вверх
navykeds
Дата 24.7.2006, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 16.3.2006

Репутация: 3
Всего: 3



Цитата(Vitalik @ 24.7.2006,  13:15)
Так пойдет?..
Код
    <CustomData>
        <Entry Name="VariableDetect" Value="([^\$])(\$[a-z_]+[0-9a-z_]+)(\[[^\]\$]+\])?"/>
    </CustomData>

Вполне. 
PM MAIL   Вверх
Sep.
Дата 24.7.2006, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 22.7.2004

Репутация: 6
Всего: 6



Цитата

Так пойдет?..

конечно. 
Цитата

Вот только я думаю, что в версиях UniHighlighter 2.0 этого пока лучше не добавлять.. 

а когда планируется бетка? т.е. можно смело 0.6 релизить и не ждать? =) а то я думал что уже готово просто...
Цитата

Не очень понятно назначение этого свойства, поясни, пожалуйста, и, если не сложно, приведи пример

Ну так чтоб на примере, то пожалуста =) В syn0.5 Option->Code->Comment Block mid char .
Он добавляется в начало каждой строки блока. Ну это я так придумал, чтобы охватить все возможные типы комметариев 
--------------------
Syn - TotalCommander lister plugin |  SynTree - coders sourcebook  
PM MAIL   Вверх
Vitalik
Дата 26.7.2006, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Координатор проекта
Сообщений: 653
Регистрация: 8.11.2004
Где: Ukraine, Kharkov

Репутация: 9
Всего: 12



Цитата(Sep. @  24.7.2006,  17:59 Найти цитируемый пост)
а когда планируется бетка? т.е. можно смело 0.6 релизить и не ждать? =) а то я думал что уже готово просто...

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

Цитата(Sep. @  24.7.2006,  17:59 Найти цитируемый пост)
Он добавляется в начало каждой строки блока. Ну это я так придумал, чтобы охватить все возможные типы комметариев

То есть это просто однострочный комментарий? smile 
PM MAIL WWW ICQ YIM   Вверх
Sep.
Дата 27.7.2006, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 22.7.2004

Репутация: 6
Всего: 6



Круто!
Небольшой хелп:
значения лежат в SynUni.CustomData.Values['CommentBlockStart'] и т.д.
также можно делать SynUni.CustomData.IndexOfName 
Цитата

То есть это просто однострочный комментарий?

ну типа того
 
--------------------
Syn - TotalCommander lister plugin |  SynTree - coders sourcebook  
PM MAIL   Вверх
Sagara
Дата 2.8.2006, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 25.7.2005

Репутация: нет
Всего: нет



Цитата(Vitalik @ 23.7.2006,  20:46)
Я пока что назвал его Options, но что-то такое название меня смущает smile

Есть какие-нибудь другие предложения?

Я там понял, это данные для "третьих" инструментов (т.е. не для подсветки),
поэтому предлагаю назвать ToolsSettings (или ToolsParameters).
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | SynUniHighlighter и SynEdit | Следующая тема »


 




[ Время генерации скрипта: 0.1445 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.