Difference between revisions of "SynEdit/ru"
(New page: {{SynEdit}} = General = The SynEdit contained in Lazarus is based on on SynEdit 1.0.3 http://synedit.sourceforge.net/, and was adapted and extended quite a lot. For example UTF-8 sup...) |
|||
Line 1: | Line 1: | ||
{{SynEdit}} | {{SynEdit}} | ||
− | = | + | = Общее = |
− | + | SynEdit находящийся в Lazarus основан на SynEdit 1.0.3 [[http://synedit.sourceforge.net/]], и была адаптированна и расширенна довольно сильно. Например поддержка UTF-8 и свертывание кода были добавленны. | |
− | + | Пакет содержащий исходник компонента называется TSynEdit, некоторые syntax highlighters и другие компоненты используют исходник редактора. | |
− | + | Он лиицензирован под темиже условиями что и оригинал SynEdit (MPL или GPL) | |
= Synedit 2.0.5 port = | = Synedit 2.0.5 port = | ||
− | + | Альтернативный порт текущей версии оригинального SynEdit : | |
http://wiki.lazarus.freepascal.org/SynEdit/port | http://wiki.lazarus.freepascal.org/SynEdit/port | ||
Line 18: | Line 18: | ||
https://github.com/rnapoles/ | https://github.com/rnapoles/ | ||
− | = SynEdit | + | = SynEdit в IDE = |
− | + | SynEdit в Лазарус является встроенным пакетом, потому что его использует IDE. Вот почему нет файлов .lpk. | |
− | + | Компонент может быть найден в палитре компонентов на странице 'SynEdit'. | |
− | = | + | = Использование SynEdit= |
− | == | + | == Подсветка == |
− | * | + | * Используйте существующую подсветку или загрузите другую из [http://bugs.freepascal.org/view.php?id=18248 Подсветка для SynEdit] |
− | * | + | * Используйте настраеваимую подсветку (SynAnySyn или SynPositionSyn) (Смотрите прмеры того как использовать) |
− | * | + | * Напишите свою собственную [[SynEdit_Highlighter]] |
− | == ( | + | == (Авто-)завершение== |
− | + | Существует 2 плагина для SynEdit, для завершения: | |
− | * TSynCompletion ( | + | * TSynCompletion (используется в IDE) |
* TSynAutoComplete | * TSynAutoComplete | ||
− | + | Примечание: TSynAutoComplete (из палитры компонентов) <b>не</b> имеет выпадающего списка. | |
− | + | Смотрите примеры как использовать их обоих. | |
− | == | + | == Изменение текста из кода == |
− | + | Текст может быть получен через SynEdit.Lines. изменение текста через свойство Lines не работает с undo/redo. | |
− | + | Используйте TextBetweenPoints и TextBetweenPointsEx для изменения текста, если вы хотите чтобы undo/redo работали. | |
− | == | + | == Закладки == |
− | + | Пожалуйста обратитесь к следуюзей теме на форуме: http://forum.lazarus.freepascal.org/index.php/topic,14948.msg79794.html | |
− | = | + | = Примеры = |
− | <b> | + | <b>Примеры можно найти в каталоге lazarus/examples/synedit</b> |
− | == | + | == Как добавить поддержку Copy, Paste, Cut, Undo, Redo и др. == |
− | + | Эти возможности могут быть реализованны использованием комманд SynEdit. | |
<delphi>uses | <delphi>uses | ||
Line 76: | Line 76: | ||
end;</delphi> | end;</delphi> | ||
− | = | + | = Дальнейшее развитие, обсуждение = |
* RTL (right-to-left): started by Mazen | * RTL (right-to-left): started by Mazen | ||
Line 84: | Line 84: | ||
* [[Redesign of the SynEdit component]]. The primary goal is more reliable display and navigation in the text. A more modular approach also allows for better integration of extensions, and for specialized controls, for use outside of Lazarus. | * [[Redesign of the SynEdit component]]. The primary goal is more reliable display and navigation in the text. A more modular approach also allows for better integration of extensions, and for specialized controls, for use outside of Lazarus. | ||
− | = | + | =Смотрите также= |
* [[SynEdit Highlighter]] | * [[SynEdit Highlighter]] | ||
[[Category:Components]] | [[Category:Components]] |
Revision as of 13:04, 7 February 2012
│
Deutsch (de) │
English (en) │
español (es) │
français (fr) │
日本語 (ja) │
polski (pl) │
русский (ru) │
中文(中国大陆) (zh_CN) │
Общее
SynEdit находящийся в Lazarus основан на SynEdit 1.0.3 [[1]], и была адаптированна и расширенна довольно сильно. Например поддержка UTF-8 и свертывание кода были добавленны.
Пакет содержащий исходник компонента называется TSynEdit, некоторые syntax highlighters и другие компоненты используют исходник редактора.
Он лиицензирован под темиже условиями что и оригинал SynEdit (MPL или GPL)
Synedit 2.0.5 port
Альтернативный порт текущей версии оригинального SynEdit :
http://wiki.lazarus.freepascal.org/SynEdit/port
code: https://github.com/rnapoles/
SynEdit в IDE
SynEdit в Лазарус является встроенным пакетом, потому что его использует IDE. Вот почему нет файлов .lpk. Компонент может быть найден в палитре компонентов на странице 'SynEdit'.
Использование SynEdit
Подсветка
- Используйте существующую подсветку или загрузите другую из Подсветка для SynEdit
- Используйте настраеваимую подсветку (SynAnySyn или SynPositionSyn) (Смотрите прмеры того как использовать)
- Напишите свою собственную SynEdit_Highlighter
(Авто-)завершение
Существует 2 плагина для SynEdit, для завершения:
- TSynCompletion (используется в IDE)
- TSynAutoComplete
Примечание: TSynAutoComplete (из палитры компонентов) не имеет выпадающего списка.
Смотрите примеры как использовать их обоих.
Изменение текста из кода
Текст может быть получен через SynEdit.Lines. изменение текста через свойство Lines не работает с undo/redo.
Используйте TextBetweenPoints и TextBetweenPointsEx для изменения текста, если вы хотите чтобы undo/redo работали.
Закладки
Пожалуйста обратитесь к следуюзей теме на форуме: http://forum.lazarus.freepascal.org/index.php/topic,14948.msg79794.html
Примеры
Примеры можно найти в каталоге lazarus/examples/synedit
Как добавить поддержку Copy, Paste, Cut, Undo, Redo и др.
Эти возможности могут быть реализованны использованием комманд SynEdit.
<delphi>uses
... SynEdit, SynEditKeyCmds;
procedure TfrmPrincipal.HandleCodigoKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Shift = [ssCtrl]) then begin case Key of VK_C: synCodigo.CommandProcessor(TSynEditorCommand(ecCopy), ' ', nil); VK_V: synCodigo.CommandProcessor(TSynEditorCommand(ecPaste), ' ', nil); VK_X: synCodigo.CommandProcessor(TSynEditorCommand(ecCut), ' ', nil); end; end;
end;</delphi>
Дальнейшее развитие, обсуждение
- RTL (right-to-left): started by Mazen
- automatic monospace font selection: At the moment SynEdit starts with a font 'courier'. But it would be better, if SynEdit would start with a monospace font (meaning: every character has the same width). At the moment the LCL TFont does not provide such a property. At the moment the user has to choose the right font.
- automatic UTF-8 font selection: Same as above monospace, but also with an UTF-8 font, so that for example umlaute are shown correctly. At the moment the user has to choose the right font.
- Dead keys. Most keyboards support typing two or more keys to create one special character (like accented or umlaut characters).
- Redesign of the SynEdit component. The primary goal is more reliable display and navigation in the text. A more modular approach also allows for better integration of extensions, and for specialized controls, for use outside of Lazarus.