Страница 6 из 10

Добавлено: Пн июл 17, 2006 06:54
Моторокер
Vitalik писал(а):
Моторокер писал(а):Так и делал, только подсвечиваются любые слова, где есть эти латинские буквы.
А что тогда нужно?
Разъясни подробнее что надо подсвечивать, а что нет ;)
Как понял, в нынешней версии сделать этого нельзя..
Нужно подсвечивать шестнадцатеричные числа 0..9A..F
Если занести все символы, то будут подкрашены и слова типа CAD. Но наверно их не оч. много. Ладно, отмена.

Сделал автоустановку схемы подсветки для *.nsi. Total конечно ругается, на missing DLL, но это фигня. Схема ставится в папку схем. Добавляю через Ctr+O, ругается, что не может скопировать. Ну и понятно вроде, из одного места в то же самое скопировать сложно :) Делаю одновить список (автопоиск), плуг добавляется, расширение закрепляю за ним. Только при обновлении включаются все ранее отключенные плагины :( хотя ты вроде где-то писал, что этот модуль изменится?

Добавлено: Пн июл 17, 2006 11:29
Vitalik
Моторокер писал(а):Как понял, в нынешней версии сделать этого нельзя..
Нужно подсвечивать шестнадцатеричные числа 0..9A..F
Если занести все символы, то будут подкрашены и слова типа CAD. Но наверно их не оч. много. Ладно, отмена.
Ладно, допустим нельзя..
Но все равно, пожалуйста, скинь хотя бы примерчик своего nsi-файла, чтобы я хоть понял, что требовалось ;)
Какие же должны быть критерии отображения символов 'CAD' как шестнадцатиричных?..
Моторокер писал(а):Добавляю через Ctr+O, ругается, что не может скопировать. Ну и понятно вроде, из одного места в то же самое скопировать сложно Smile Делаю одновить список (автопоиск), плуг добавляется, расширение закрепляю за ним. Только при обновлении включаются все ранее отключенные плагины Sad хотя ты вроде где-то писал, что этот модуль изменится?
Угу, я работаю над этим :?

Добавлено: Пн июл 17, 2006 12:08
Моторокер
Да в принципе любое число:
"D:\Program Files\NSIS\Examples\bigtest.nsi"
BGGradient 000000 800000 FFFFFF
InstallColors FF8080 000030

И схема http://motorocker.nm.ru/nsis.hgl.zip

Добавлено: Пн июл 17, 2006 12:24
Batya
Vitalik
Я думаю, вопрос надо поставить по-другому:
Можно ли задать фиксированную длину набора символов (например, 6)?

Добавлено: Пн июл 17, 2006 19:36
KF-121
Вот несколько бугов и пожеланий!

1. В режиме просмотра не переходит на закладку.
2. SynPlusEditor - при запуске не разворачивается на весь экран, хотя до закрытия был развернут на весь экран.
3. Такие-то проблемы с копированием и вставкой. По роду деятельности на работе довольно много работаем с удаленным рабочим столом. Так вот когда открываешь новое соединение, буфер нормально работает, но через некоторое время, просто перестает вставлять на удаленной машине или отказывается вставлять на локали. Сегодня наконец-то выяснили, что это из-за плагина. Проблема заключается в том, что один раз скопировал и удаленке вставил. второй раз он не захотел вставлять. Закрыли плагин, скопировали другую строку, и она уже вставляется на уладенку. Парадокс какой-то. В чем может быть проблема.
4. Еще есть предложение, при поиске выводить окно со списком всего найденного, а при щелканьи на строку в этом окне, будет переходить на ту строку, где она в тексте встречается. Например, как это реализовано в UltraEdit.
5. Спасибо за количество выделенных строк и нормальное выделение по Alt.

Добавлено: Вт июл 18, 2006 00:57
Vitalik
Batya писал(а):Можно ли задать фиксированную длину набора символов (например, 6)?
Пока что нет..
Моторокер писал(а):Добавляю через Ctr+O, ругается, что не может скопировать. Ну и понятно вроде, из одного места в то же самое скопировать сложно Smile Делаю одновить список (автопоиск), плуг добавляется, расширение закрепляю за ним. Только при обновлении включаются все ранее отключенные плагины Sad хотя ты вроде где-то писал, что этот модуль изменится?
Все, эти моменты уже вроде сделаны.
Увидите в новой версии ;)

Добавлено: Ср июл 19, 2006 00:30
Vitalik
Batya писал(а):Можно ли задать фиксированную длину набора символов (например, 6)?
Теперь можно! :lol:
Добавил эту возможность, это оказалось совсем не сложно :)

И еще одна хорошая новость: теперь нет утечек памяти! 8)

Добавлено: Ср июл 19, 2006 07:01
Моторокер
Vitalik писал(а):
Batya писал(а):Можно ли задать фиксированную длину набора символов (например, 6)?
Теперь можно! :lol:
Старые версии плагина будут эту фичу схемы подсветки игнорировать?

Добавлено: Ср июл 19, 2006 09:43
Vitalik
Моторокер писал(а):Старые версии плагина будут эту фичу схемы подсветки игнорировать?
Это на самом деле совсем не важно, так как формат файла в новой версии и так уже кардинально изменился (надо было перестроить файл с учетом новых возможностей)
Если есть желание, могу попробовать сделать возможность сохранения подсветки в старых форматах (их на самом деле три), все равно давно уже хотел это сделать :)
Что скажешь? ;)

Добавлено: Ср июл 19, 2006 11:40
Моторокер
Получается, что старые версии плагина будут ругаться на новый файл?
В xml вроде удобно сделать игнор новых тэгов старыми версиями?
Или это не новые тэги, а как-то изменённые старые? КашаNew=МаслоOld? :)

Новые версии плагина будут поддерживать старые подсветки? Будут ругаться? Придётся править всё заново?

Добавлено: Ср июл 19, 2006 15:53
Vitalik
Моторокер писал(а):Получается, что старые версии плагина будут ругаться на новый файл?
Угумс :cry:
Моторокер писал(а):В xml вроде удобно сделать игнор новых тэгов старыми версиями?
Совершенно верно, если изменения какие-то незначительные, например, добавлено новое свойство или даже целый тег, то старые версии преспокойно читали бы этот формат.
Например, если бы новая версия плагина была уже выпущена, то после добавления этой возможности (фиксированная длина набора символов) эта выпущенная версия все равно могла бы открывать новые файлы (файлы с этой возможнстью)
Моторокер писал(а):Или это не новые тэги, а как-то изменённые старые? КашаNew=МаслоOld?
Да, но дело даже не только в таких мелких исправлениях.
Изменена сама структура xml-файла. Причем изменена кардинально. Сейчас приведу маленькие примеры с комментариями ;)

Во-первых, жил да был раньше самый первый формат файла. От версии плагина SynPlus 2.0b1 до 2.3 он хорошел и развивался, но кардинально не менялся (просто добавлялись новые свойства и правила как новые теги в файле). Сам формат файла (можно сказать) изменялся от 1.0 до 1.5, вот небольшой его кусочек (здесь только информация о подсветке, один диапазон, один список ключевых слов и один набор символов):

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

<UniHighlighter>
 <ImportantInfo>
  ******* Please read carefully *************************
  * Please, make any changes in this file very carefuly!*
  * It is much more convinient to use native designer!  *
  *******************************************************
 </ImportantInfo>
 <Info>
  <General>
   <Name>Sample file</Name>
   <FileTypeName>TXT</FileTypeName>
   <Layout>Standard</Layout>
  </General>
  <Author>
   <Name>Vitalik</Name>
   <Email>vetal-x@mail.ru</Email>
   <Web></Web>
   <Copyright>© Vitaly Lyapota, 2006</Copyright>
   <Company>N/A</Company>
   <Remark></Remark>
  </Author>
  <Version>
   <Version>1</Version>
   <Revision>3</Revision>
   <Date>38917,4941534606</Date>
   <Type>Beta</Type>
  </Version>
  <History>
  </History>
  <Sample>
   <S>Sample code here...</S>
   <S>Second line of sample code</S>
  </Sample>
 </Info>
 <SchemeIndex>0</SchemeIndex>
 <Schemes>
  <S>Vitalik</S>
 </Schemes>
 <Range Name="Root">
 <Attri>
  <Back>-2147483643</Back>
  <Fore>16711680</Fore>
  <Style></Style>
  <ParentForeground>False</ParentForeground>
  <ParentBackground>False</ParentBackground>
 </Attri>
 <Enabled>True</Enabled>
 <OpenSymbol></OpenSymbol>
 <OpenSymbolFinishOnEol>False</OpenSymbolFinishOnEol>
 <CloseSymbol></CloseSymbol>
 <CloseSymbolFinishOnEol>False</CloseSymbolFinishOnEol>
 <OpenSymbolStartLine>False</OpenSymbolStartLine>
 <CloseSymbolStartLine>False</CloseSymbolStartLine>
 <DelimiterChars>!&quot;#$%&amp;'()*+,-./:;&lt;=&gt;?@[\]^`{|}~</DelimiterChars>
 <OpenSymbolPartOfTerm>Right</OpenSymbolPartOfTerm>
 <CloseSymbolPartOfTerm>False</CloseSymbolPartOfTerm>
 <CloseOnTerm>False</CloseOnTerm>
 <CloseOnEol>False</CloseOnEol>
 <AllowPredClose>False</AllowPredClose>
 <CaseSensitive>False</CaseSensitive>
 <KW Name="Some keywords">
  <Attri>
   <Back>-2147483643</Back>
   <Fore>16711680</Fore>
   <Style></Style>
   <ParentForeground>True</ParentForeground>
   <ParentBackground>True</ParentBackground>
  </Attri>
  <Enabled>True</Enabled>
  <W>keyword1</W>
  <W>keyword2</W>
  <W>keyword3</W>
 </KW>
  <Set Name="Numbers">
   <Attri>
    <Back>-2147483643</Back>
    <Fore>128</Fore>
    <Style></Style>
    <ParentForeground>False</ParentForeground>
    <ParentBackground>True</ParentBackground>
   </Attri>
   <Enabled>True</Enabled>
   <S>0123456789</S>
  </Set>
  <Range Name="Comments">
  <Attri>
   <Back>-2147483643</Back>
   <Fore>255</Fore>
   <Style></Style>
   <ParentForeground>False</ParentForeground>
   <ParentBackground>False</ParentBackground>
  </Attri>
  <Enabled>True</Enabled>
  <OpenSymbol>//</OpenSymbol>
  <OpenSymbolFinishOnEol>False</OpenSymbolFinishOnEol>
  <CloseSymbol></CloseSymbol>
  <CloseSymbolFinishOnEol>False</CloseSymbolFinishOnEol>
  <OpenSymbolStartLine>True</OpenSymbolStartLine>
  <CloseSymbolStartLine>False</CloseSymbolStartLine>
  <DelimiterChars>!&quot;#$%&amp;'()*+,-./:;&lt;=&gt;?@[\]^`{|}~</DelimiterChars>
  <OpenSymbolPartOfTerm>Right</OpenSymbolPartOfTerm>
  <CloseSymbolPartOfTerm>False</CloseSymbolPartOfTerm>
  <CloseOnTerm>False</CloseOnTerm>
  <CloseOnEol>True</CloseOnEol>
  <AllowPredClose>False</AllowPredClose>
  <CaseSensitive>False</CaseSensitive>
  </Range>
 </Range>
 <CopyRight>Rule file for UniHighlighter Delphi component (Copyright(C) Fantasist(walking_in_the_sky@yahoo.com), Vit(nevzorov@yahoo.com), Vitalik(vetal-x@mail.ru), 2002-2004)</CopyRight>
</UniHighlighter>
Согласитесь, что уж больно "грузной" он какой-то. В смысле, что сильно большой, много избыточной (оберточной) информации...

Чтобы визуально "разгрузить" этот формат файла в SynPlus 2.4 был введен новый формат файла (условно можно назвать версию этого формата: 1.8), опять же приведу такой же аналогичный кусочек этого формата (тоже только информация о подсветке, один диапазон, один список ключевых слов и один набор символов):

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

<UniHighlighter version="1.8.1">
  <Info>
    <General Name="Sample file" Extensions="TXT"/>
    <Author Name="Vitalik" Email="vetal-x@mail.ru" Web="" Copyright="© Vitaly Lyapota, 2006" Company="N/A" Remark=""/>
    <Version Version="1" Revision="3" Date="38917,5138890625"/>
    <History>
    </History>
    <Sample>
      <S>Sample code here...</S>
      <S>Second line of sample code</S>
    </Sample>
  </Info>
  <Scheme File="" Name=""/>
  <Range Name="Root" Attributes="0,-2147483643;False:False." Style=""
         Delimiters="!&quot;#$%&amp;'()*+,-./:;&lt;=&gt;?@[\]^`{|}~">
    <Rule/>
    <Keywords Name="Symbols" Attributes="16711680,-2147483643;True:True." Style="">
      <word value="keyword1"/>
      <word value="keyword2"/>
      <word value="keyword3"/>
    </Keywords>
    <Set Name="Numbers" Attributes="128,-2147483643;False:True." Style="" Symbols="0123456789"/>
    <Range Name="Comments" Attributes="255,-2147483643;False:False." Style=""
           Delimiters="!&quot;#$%&amp;'()*+,-./:;&lt;=&gt;?@[\]^`{|}~">
      <Rule OpenSymbol="//" OpenSymbolStartLine="True" OpenSymbolPartOfTerm="Right" CloseOnEol="True"/>
  </Range>
  <CopyRight>Rule file for UniHighlighter Delphi component (Copyright(C) Fantasist(walking_in_the_sky@yahoo.com), Vit(nevzorov@yahoo.com), Vitalik(vetal-x@mail.ru), 2002-2004)</CopyRight>
</UniHighlighter>
Получился гораздо более элегантный формат, хотя и не лишенный своих недостатков (например, Attributes, как видно, хранились не очень красиво)

Такой формат файла продержался вплоть до версии SynPlus 2.7.3. В сентябре прошлого года вышла новая версия компонента подсветки (т.н. UniHighlighter 2.0 Alpha), но изменения в ней были слишком глобальные (отчасти из-за подключившегося к проекту Quadr0), чтобы его можно было легко встроить в плагин... :( А затем начались учебные будни и я на очень долгий срок лишился времени на плагин.. Но вот опять лето! Над компонентом была проведена большая работа, а также над интеграцией компонента с плагином. Об изменениях на этом фронте можно наблюдать на форуме компонента: http://forum.vingrad.ru/index.php?showforum=170
Вобщем, в новой версии компонента формат файла сильно изменился и я думаю в лучшую сторону (хотя, опять же, есть и свои недостатки, например, многострочные тексты вынесены в атрибуты для ускорения считывания подсветки, но в файле это выглядит не совсем красиво): :)

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

<?xml version="1.0" encoding="windows-1251"?>
<SynUniHighlighter Version="2.0">
	<SyntaxColoring>
		<Info>
			<General Name="Sample file" Extensions="TXT" Version="1" Revision="3" Sample="Sample code here...
Second line of sample code" History=""/>
			<Author Name="Vitalik" Mail="vetal-x@mail.ru" Web="" Copyright="© Vitaly Lyapota, 2006" Company="N/A" Remark=""/>
		</Info>
		<Schemes/>
		<Editor/>
		<MainRules Name="Root" Style="">
			<Attributes Foreground="clBlack" Background="$80000005"/>
			<Delimiters Value="!&quot;#$%&amp;'()*+,-./:;&lt;=&gt;?@[\]^`{|}~"/>
			<SubRules>
				<Range Name="New" Style="">
					<Attributes Foreground="clRed" Background="$80000005" ParentForeground="True" ParentBackground="True"/>
					<Delimiters Value="!&quot;#$%&amp;'()*+,-./:;&lt;=&gt;?@[\]^`{|}~"/>
					<OpenToken StartLine="True" PartOfTerm="True"/>
					<Properties CloseOnEol="True"/>
					<MultiTokens>
						<Tokens Open="//"/>
					</MultiTokens>
					<SubRules/>
				</Range>
				<KeyList Name="Symbols" Enabled="True" Style="" Words="keyword1
keyword2
keyword3
">
					<Attributes Foreground="clBlue" Background="$80000005" ParentForeground="True" ParentBackground="True"/>
				</KeyList>
				<Set Name="Numbers" Enabled="True" Style="" Symbols="0123456789" Quantity="2">
					<Attributes Foreground="clMaroon" Background="$80000005" ParentBackground="True"/>
				</Set>
			</SubRules>
		</MainRules>
	</SyntaxColoring>
</SynUniHighlighter>
Моторокер писал(а):Новые версии плагина будут поддерживать старые подсветки? Будут ругаться? Придётся править всё заново?
Такую возможность я закодил в первую очередь ;)
Также как и SynPlus начиная с версии 2.4 понимает все предыдущие форматы вплоть до изначального, новый SynPlus будет иметь возможность беспроблемно считывать подсветки всех старых форматов ;)


P.S. Я уже сделал возможность сохранять подсветки в старом формате (который используется в последних SynPlus), осталось только это прикрутить к редактору подсветок и, может быть, к "менеджеру" подсветок :)

P.P.S Что-то у меня этот форум не всегда загружается.. Поэтому и не мог так долго запостить ответ.. :(

Добавлено: Ср июл 19, 2006 18:44
Vitalik
Ой, в примере файла версии 2.0 нужно учесть, что под тегом <SyntaxColoring> есть тег <CodeFolding> с деревом правил CodeFolding'а. Собственно именно для этого и выделены правила подсветки в отдельный тег SyntaxColoring (потому что появился CodeFolding) :)

Добавлено: Пт ноя 24, 2006 15:37
BasiL
Хотелось бы фичу поиска выделенного текста по F3, с начала файла (как реализовано в UltraEdit).
Так же было бы неплохо выбирать тип поиска, по кругу или только до конца файла (в общем случае и в случае поиска выделеного текста)

Добавлено: Вт ноя 28, 2006 12:27
SCHMaster
2BasiL
Текст под курсором и поиск с начала - с первых версий... Диалог поиска SynPlus, а не стандартный и там все это есть, и поиск текста под курсором и поиск с начала...

Добавлено: Вт ноя 28, 2006 13:16
BasiL
Нет, я не такой поиск имел ввиду.
опишу так, как мне это удобно делать в UE:
выделил текст-нажал F3
происходит поиск выделенного текста с этого места и до конца файла и далее по кругу, т.е. дойдя до конца, поиск продолжается сначала.
в SynPlus приходится давить F4 (режим редактирования, т.к. Ctrl+F7 в просмотре не работает), потом Ctrl+W.
и даже в этом случае поиск только до конца файла.
с начала не продолжается.
Да и самое главное: диалоговое окно поиска каждый раз видеть не хочется. если понадобится другой вид поиска - настрою в диалоговом окне... в общем хотелось бы выбирать режим поиска по F3 по умолчанию.