|
Модераторы: Vitalik |
|
Sep. |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 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 |
|||
|
||||
Vitalik |
|
|||
Опытный Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Сделал в новой версии компонента (2.0b4) возможность хранения произвольных параметров в подсветке, вот только как обозвать это свойство?..
Я пока что назвал его Options, но что-то такое название меня смущает Есть какие-нибудь другие предложения? |
|||
|
||||
navykeds |
|
|||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 16.3.2006 Репутация: 3 Всего: 3 |
Custom
|
|||
|
||||
Sep. |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 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 |
|||
|
||||
Vitalik |
|
|||
Опытный Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Далеко не все равно.. Если только со временем выяснится, что оно "режет глаз", то придется его менять, чего очень не хотелось. Поэтому желательно заранее выяснить все возможные варианты и выбрать действительно достойный. Согласен.. Я его просто выбрал, так как хотелось бы, чтобы название этого свойства было в множественном числе, а отдельные пункты - в единственном. Options - Option, Customs - Custom... Хотя в последнем случае Customs - это немножко не то.. Гм... Так пойдет?..
Не очень понятно назначение этого свойства, поясни, пожалуйста, и, если не сложно, приведи пример Вот только я думаю, что в версиях UniHighlighter 2.0 этого пока лучше не добавлять.. Так как это все таки весомое отличие от предыдущих версий 2.0 (и среди объектной структуры и в формате файла)... Возможно я уже сейчас начну параллельную работу над новой версией 2.2 с новыми возможностями.. Не забывая при этом про стабилизацию версии 2.0 |
|||
|
||||
navykeds |
|
||||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 16.3.2006 Репутация: 3 Всего: 3 |
Вполне. |
||||
|
|||||
Sep. |
|
||||||
Шустрый Профиль Группа: Участник Сообщений: 109 Регистрация: 22.7.2004 Репутация: 6 Всего: 6 |
конечно.
а когда планируется бетка? т.е. можно смело 0.6 релизить и не ждать? =) а то я думал что уже готово просто...
Ну так чтоб на примере, то пожалуста =) В syn0.5 Option->Code->Comment Block mid char . Он добавляется в начало каждой строки блока. Ну это я так придумал, чтобы охватить все возможные типы комметариев --------------------
Syn - TotalCommander lister plugin | SynTree - coders sourcebook |
||||||
|
|||||||
Vitalik |
|
||||
Опытный Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Уже было все готово, но у меня что-то эти дни к компу доступа особого не было.. Поэтому до сих пор не выложил, но через несколько минут, я ее все-таки выкладываю
То есть это просто однострочный комментарий? |
||||
|
|||||
Sep. |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 109 Регистрация: 22.7.2004 Репутация: 6 Всего: 6 |
Круто!
Небольшой хелп: значения лежат в SynUni.CustomData.Values['CommentBlockStart'] и т.д. также можно делать SynUni.CustomData.IndexOfName
ну типа того --------------------
Syn - TotalCommander lister plugin | SynTree - coders sourcebook |
|||
|
||||
Sagara |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 25.7.2005 Репутация: нет Всего: нет |
Я там понял, это данные для "третьих" инструментов (т.е. не для подсветки), поэтому предлагаю назвать ToolsSettings (или ToolsParameters). |
|||
|
||||
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | SynUniHighlighter и SynEdit | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |