SynPlus

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
Моторокер
Сообщения: 1517
Зарегистрирован: Пт май 06, 2005 08:22
Откуда: г. Пермь (читается Перьмь)
Контактная информация:

Сообщение Моторокер »

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

Сделал автоустановку схемы подсветки для *.nsi. Total конечно ругается, на missing DLL, но это фигня. Схема ставится в папку схем. Добавляю через Ctr+O, ругается, что не может скопировать. Ну и понятно вроде, из одного места в то же самое скопировать сложно :) Делаю одновить список (автопоиск), плуг добавляется, расширение закрепляю за ним. Только при обновлении включаются все ранее отключенные плагины :( хотя ты вроде где-то писал, что этот модуль изменится?
Аватара пользователя
Vitalik
Сообщения: 21
Зарегистрирован: Ср дек 15, 2004 00:56
Откуда: Украина, Харьков
Контактная информация:

Сообщение Vitalik »

Моторокер писал(а):Как понял, в нынешней версии сделать этого нельзя..
Нужно подсвечивать шестнадцатеричные числа 0..9A..F
Если занести все символы, то будут подкрашены и слова типа CAD. Но наверно их не оч. много. Ладно, отмена.
Ладно, допустим нельзя..
Но все равно, пожалуйста, скинь хотя бы примерчик своего nsi-файла, чтобы я хоть понял, что требовалось ;)
Какие же должны быть критерии отображения символов 'CAD' как шестнадцатиричных?..
Моторокер писал(а):Добавляю через Ctr+O, ругается, что не может скопировать. Ну и понятно вроде, из одного места в то же самое скопировать сложно Smile Делаю одновить список (автопоиск), плуг добавляется, расширение закрепляю за ним. Только при обновлении включаются все ранее отключенные плагины Sad хотя ты вроде где-то писал, что этот модуль изменится?
Угу, я работаю над этим :?
Добро пожаловать на http://www.unihighlighter.com
Аватара пользователя
Моторокер
Сообщения: 1517
Зарегистрирован: Пт май 06, 2005 08:22
Откуда: г. Пермь (читается Перьмь)
Контактная информация:

Сообщение Моторокер »

Да в принципе любое число:
"D:\Program Files\NSIS\Examples\bigtest.nsi"
BGGradient 000000 800000 FFFFFF
InstallColors FF8080 000030

И схема http://motorocker.nm.ru/nsis.hgl.zip
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Vitalik
Я думаю, вопрос надо поставить по-другому:
Можно ли задать фиксированную длину набора символов (например, 6)?
Нет, я не сплю. Я просто медленно моргаю.
Аватара пользователя
KF-121
Сообщения: 90
Зарегистрирован: Пн фев 13, 2006 11:00

Сообщение KF-121 »

Вот несколько бугов и пожеланий!

1. В режиме просмотра не переходит на закладку.
2. SynPlusEditor - при запуске не разворачивается на весь экран, хотя до закрытия был развернут на весь экран.
3. Такие-то проблемы с копированием и вставкой. По роду деятельности на работе довольно много работаем с удаленным рабочим столом. Так вот когда открываешь новое соединение, буфер нормально работает, но через некоторое время, просто перестает вставлять на удаленной машине или отказывается вставлять на локали. Сегодня наконец-то выяснили, что это из-за плагина. Проблема заключается в том, что один раз скопировал и удаленке вставил. второй раз он не захотел вставлять. Закрыли плагин, скопировали другую строку, и она уже вставляется на уладенку. Парадокс какой-то. В чем может быть проблема.
4. Еще есть предложение, при поиске выводить окно со списком всего найденного, а при щелканьи на строку в этом окне, будет переходить на ту строку, где она в тексте встречается. Например, как это реализовано в UltraEdit.
5. Спасибо за количество выделенных строк и нормальное выделение по Alt.
Во всем виновато КАКАДУ!
--------------------------------
IIIypuk©KF-121
Аватара пользователя
Vitalik
Сообщения: 21
Зарегистрирован: Ср дек 15, 2004 00:56
Откуда: Украина, Харьков
Контактная информация:

Сообщение Vitalik »

Batya писал(а):Можно ли задать фиксированную длину набора символов (например, 6)?
Пока что нет..
Моторокер писал(а):Добавляю через Ctr+O, ругается, что не может скопировать. Ну и понятно вроде, из одного места в то же самое скопировать сложно Smile Делаю одновить список (автопоиск), плуг добавляется, расширение закрепляю за ним. Только при обновлении включаются все ранее отключенные плагины Sad хотя ты вроде где-то писал, что этот модуль изменится?
Все, эти моменты уже вроде сделаны.
Увидите в новой версии ;)
Добро пожаловать на http://www.unihighlighter.com
Аватара пользователя
Vitalik
Сообщения: 21
Зарегистрирован: Ср дек 15, 2004 00:56
Откуда: Украина, Харьков
Контактная информация:

Сообщение Vitalik »

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

И еще одна хорошая новость: теперь нет утечек памяти! 8)
Добро пожаловать на http://www.unihighlighter.com
Аватара пользователя
Моторокер
Сообщения: 1517
Зарегистрирован: Пт май 06, 2005 08:22
Откуда: г. Пермь (читается Перьмь)
Контактная информация:

Сообщение Моторокер »

Vitalik писал(а):
Batya писал(а):Можно ли задать фиксированную длину набора символов (например, 6)?
Теперь можно! :lol:
Старые версии плагина будут эту фичу схемы подсветки игнорировать?
Аватара пользователя
Vitalik
Сообщения: 21
Зарегистрирован: Ср дек 15, 2004 00:56
Откуда: Украина, Харьков
Контактная информация:

Сообщение Vitalik »

Моторокер писал(а):Старые версии плагина будут эту фичу схемы подсветки игнорировать?
Это на самом деле совсем не важно, так как формат файла в новой версии и так уже кардинально изменился (надо было перестроить файл с учетом новых возможностей)
Если есть желание, могу попробовать сделать возможность сохранения подсветки в старых форматах (их на самом деле три), все равно давно уже хотел это сделать :)
Что скажешь? ;)
Добро пожаловать на http://www.unihighlighter.com
Аватара пользователя
Моторокер
Сообщения: 1517
Зарегистрирован: Пт май 06, 2005 08:22
Откуда: г. Пермь (читается Перьмь)
Контактная информация:

Сообщение Моторокер »

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

Новые версии плагина будут поддерживать старые подсветки? Будут ругаться? Придётся править всё заново?
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
Аватара пользователя
Vitalik
Сообщения: 21
Зарегистрирован: Ср дек 15, 2004 00:56
Откуда: Украина, Харьков
Контактная информация:

Сообщение 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 Что-то у меня этот форум не всегда загружается.. Поэтому и не мог так долго запостить ответ.. :(
Добро пожаловать на http://www.unihighlighter.com
Аватара пользователя
Vitalik
Сообщения: 21
Зарегистрирован: Ср дек 15, 2004 00:56
Откуда: Украина, Харьков
Контактная информация:

Сообщение Vitalik »

Ой, в примере файла версии 2.0 нужно учесть, что под тегом <SyntaxColoring> есть тег <CodeFolding> с деревом правил CodeFolding'а. Собственно именно для этого и выделены правила подсветки в отдельный тег SyntaxColoring (потому что появился CodeFolding) :)
Добро пожаловать на http://www.unihighlighter.com
BasiL
Сообщения: 11
Зарегистрирован: Пт ноя 24, 2006 15:07

Сообщение BasiL »

Хотелось бы фичу поиска выделенного текста по F3, с начала файла (как реализовано в UltraEdit).
Так же было бы неплохо выбирать тип поиска, по кругу или только до конца файла (в общем случае и в случае поиска выделеного текста)
Аватара пользователя
SCHMaster
Сообщения: 296
Зарегистрирован: Ср дек 15, 2004 02:32
Откуда: Киев
Контактная информация:

Сообщение SCHMaster »

2BasiL
Текст под курсором и поиск с начала - с первых версий... Диалог поиска SynPlus, а не стандартный и там все это есть, и поиск текста под курсором и поиск с начала...
Хороший юзер - мертвый юзер
Мои работы
BasiL
Сообщения: 11
Зарегистрирован: Пт ноя 24, 2006 15:07

Сообщение BasiL »

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