Ru-Board.club
← Вернуться в раздел «Программы»

» SciTE - Open Source Text Editor for Windows & Linux

Автор: codewarlock1101
Дата сообщения: 26.05.2006 11:52
ВСЕМ КОДЕРАМ
Есть идея: добавить в abbrev-lang (на уровне ядра SciTE) два параметра - выделенный текст и буфер клип боарда (например %selected_text% и %clipboard_text%).
Это даст определенную гибкость:
(допустим у нас в буфере обмена: State In [dsEdit,dsInsert])
например если выделить следующий текст, и нажать ctrl+B произойдет следующее:

if with dxDBInspector.DataSource.DataSet do
begin
dxDBInspector.DataSource.DataSet := Nil;
RxRichEdit1.Text := '';
end;

SciTE должен (его нужно научить ) выделить первое слово (if), определить что оно - аббревиатура, убить ее из выделенного текста и вставить все с соответствующими правилами...
например pascal.abbrev:
if=if (%clipboard_text%|) then \nbegin%selected_text%\nend;

тогда получим следующую штуку:
if (State In [dsEdit,dsInsert]) then
begin
with dxDBInspector.DataSource.DataSet do
begin
dxDBInspector.DataSource.DataSet := Nil;
RxRichEdit1.Text := '';
end;
end;

если же выделенного текста нет - сработать "по-старому"

Удобно...

У меня есть старая, немного кривая реализация всего этого дела на lua, я ее подправлю и выложу, если вдруг кому интересно, там еще то время было, когда аббревиатуры нельзя было хранить для разных языков, поэтому пришлось извращаться и делать псевдо-abbrev, которые динамически подгружались. Еще для оргомных файлов сильно тормозило..

Автор: mirk
Дата сообщения: 28.05.2006 21:52
SciTE 1.69 release candidate

Добавлено:
SciTE project manager for Linux
Автор: DiggER
Дата сообщения: 29.05.2006 10:11
Господа, а как поменять шрифт?
Автор: mozers
Дата сообщения: 29.05.2006 15:53
DiggER
Ну это - просто Только, шрифт чего?
Если - самого текста в окне редактирования, то он определяется параметрами style.... (свое значение стиля для каждого элемента - например, ключевое слово, комментарий и пр...)
Часто вместо реального значения шрифта, туда записывают пользовательскую переменную:

Код: style.*.32=$(font.base),back:#EAF4F7
Автор: ALeXkRU
Дата сообщения: 30.05.2006 00:07
mirk
22:52 28-05-2006
Цитата:
SciTE 1.69 release candidate

уже - релиз:

Цитата:
Release 1.69
- Released on 29 May 2006.
- SciTE supports z-order based buffer switching on Ctrl+Tab.
- Translucent support for selection and whole line markers.
- SciTE may have per-language abbreviations files.
- Support for Spice language.
- On GTK+ autocompletion lists are optimised and use correct selection colours.
- On GTK+ the URI data type is preferred in drag and drop so that applications will see files dragged from the shell rather than dragging the text of the file name into the document.
- Increased number of margins to 5.
- Basic lexer allows include directive $include: "file name".
- SQL lexer no longer bases folding on indentation.
- Line ends are transformed when copied to clipboard on Windows/GTK+2 as well as Windows/GTK+ 1.
- Lexing code masks off the indicator bits on the start style before calling the lexer to avoid confusing the lexer when an application has used an indicator.
- SciTE savebefore:yes only saves the file when it has been changed.
- SciTE adds output.initial.hide setting to allow setting the size of the output pane without it showing initially.
- SciTE on Windows Go To dialog allows line number with more digits.
- Bug in HTML lexer fixed where a segment of PHP could switch scripting language based on earlier text on that line.
- Memory bug fixed when freeing regions on GTK+. Other minor bugs fixed on GTK+.
- Deprecated GTK+ calls in Scintilla replaced with current calls.
- Fixed a SciTE bug where closing the final buffer, if read-only, left the text present in an untitled buffer.
- Bug fixed in bash lexer that prevented folding.
- Crash fixed in bash lexer when backslash at end of file.
- Fix for SciTE properties files where multiline properties continued over completely blank lines.
- Bug fixed in SciTE/GTK+ director interface where more data available than buffer size.
- Minor visual fixes to SciTE splitter on GTK+.


Добавлено:
вольное переложение изменений:

Release 1.69
- поддержка SciTE переключения буфера, основанного на упорядочивании по Z, (вкладок?) по Ctrl+Tab
- поддержка прозрачности для выделения и всех маркеров строк
- SciTE может иметь файлы сокращений (.abbrev) для каждого языка
- поддержка языка Spice
- в GTK+ оптимизировано автозавершение списков и используется правильный выбор цветов
- в GTK+ типы данных URI (унифицированных идентификаторов ресурсов) предпочитаемые при перетаскивании, чтобы приложения могли видеть перетаскиваемые из оболочки файлы не только как перетаскиваемое в документ имя файла в виде текста
- увеличено число границ до 5
- базовый лексер разрешает использовать директиву $include: "имя файла"
- лексер SQL больше не использует отступы при сворачивании
- концы строк преобразовывались при копировании в буфер в Windows/GTK+2 а также в Windows/GTK+ 1
- лексические коды масок отключают битовый индикатор при старте стиля перед вызовом лексера, чтобы избежать путаницы лексера, если в приложении использовался индикатор
- в SciTE включен параметр savebefore:yes, при котором файл сохраняется только если он был изменен
- в настройки SciTE добавлен параметр output.initial.hide, разрешающий настройку размера панели вывода без предварительного показа ее при старте
- в SciTE для Windows в диалоге "Перейти к..." (Go To) увеличено допустимое количество цифр в номерах строк
- исправлена ошибка в лексере HTML, при которой в фрагментах на PHP не переключался скриптовый язык с размещенного ранее по тексту при переходе на текущую строку
- исправлена ошибка памяти при освобождении диапазона в GTK+. Исправлены другие небольшие ошибки в GTK+.
- не рекомендуемые в GTK+ вызовы в Scintilla заменены текущими вызовами
- исправлена ошибка SciTE при закрытии последнего буфера в режиме только для чтения, позволявшая размещать текст в неименованный буфер
- исправлена ошибка в лексере bash, не позволяющая использовать сворачивание
- исправлена фатальная ошибка в лексере bash, приводившая к краху при использовании бэкслеша в конце файла
- исправлена ошибка в файлах свойств SciTE, при которой многострочные свойства продолжались после пустых строк
- исправлена ошибка в управляющем интерфейсе SciTE/GTK+ когда размер доступных данных превышает размер буфера
- небольшие визуальные исправления разделителя SciTE в GTK+
Автор: DiggER
Дата сообщения: 30.05.2006 08:42
mozers
спасибо, теперь знаю где искать.
Автор: mirk
Дата сообщения: 30.05.2006 13:35
ALeXkRU
Клево ))
С предложенным переводом вроде все согласны, так что я его размещаю, если что, пишите в комменты к новости.

Добавлено:
Разместил
Автор: zvyagaaa
Дата сообщения: 01.06.2006 11:00
Лучше прежнего
Автор: mirk
Дата сообщения: 01.06.2006 13:27
Автозакрытие скобок (простой вариант) Автор скрипта gansA

Добавлено:
Поменял немного шапку, добавил раздел "скрипты", сменил картинку... Если у кого есть еще скрины, предлагайте
Автор: mozers
Дата сообщения: 04.06.2006 02:15
Излагаю положение дел с новой сборкой Ru-Board:
Сборка (ядро 1.69 .07Ru)
Новое ядро .07Ru - Доработанный вариант оригинальной версии 1.69
Хотя Нейл многое, придуманное mimir-ом учел, но еще много чего нет. Поэтому было поправлено:
1. Исправлена ошибка зависания SciTE при использовании command.input. (Автор: mimir)
2. Исправлена ошибка с выводом текста по command.input и $(CurrentSelection) исключительно в кодировке UTF-8 (Автор: mimir)
(без этой ерунды многие скрипты из сборки будут просто неработоспособны)
К сожалению, моих знаний не хватило на то чтобы вновь научить Скайт понимать команду import в файлах *.abbrev
Не сделал правку фолдинга для MASM (Автор: UsAr) поскольку Нейл сам над ней сурьезно потрудился. Надо пробовать. Если правка все еще требуется то менять надо последнюю версию (то же сам я вряд ли это смогу).
Все основные .properties объединил в 1 файл с секциями. Ну дико удобно - это надо видеть
Неделю ждал, что кто нибудь поможет написать код для автоматического сворачивания всех фолдеров - не дождался - цельный день башку ломал - десятка два пробных вариантов нарисовал - в результате получилось 10 строчек кода
Ну и скриптов еще парочку добавил, да старые чуть подрехтовал.
В пропертях - практически никаких изменений - чуть по мелочи...
Вы хотите чтобы я это выкладывал?
Или может вместе попробуем изобразить что то более путное?
Ну хотя бы ошибки поищем и поправим...
В общем - жду файло и очень прошу свои творения оформлять соответствующим образом, поскольку заниматься живописью меня уже тоже приморило...
Автор: mimir
Дата сообщения: 06.06.2006 09:56
Я тут сделал чтобы abbrev понимал переменные %SEL%, %CLB% и %GUID%,
правдо пока только по Ctrl+B (Ctrl+Alt+R пока не делал).
Но проблема заключаеться в том что этих трех переменных для меня мало. И вот я думаю как бы организовать передачу в сокращения дополнительных переменных.
Собственно это можно сделать например через выделенный текст
(%bla-bla-bla% или %ParamName=bla-bla-bla%)
и обращаться соответственно %P1% или %ParamName%.
Так же я подумываю сделать рекурсивный вызов, хотя если честно применения этому пока не нашел. Но что-то мне подсказывает, что если это и понадобиться то правильнее это делать с помощью LUA. Где-то я видел скрипты для вставки сокращений. Может в них уже все это реализовано и я зря изобретаю велосибед?

Еще я сделал подсветку для cpp в стиле classic. Единственная проблема состоит в том что цвет курсора не меняеться для разных языков. Может сегодня я это исправлю.
Соответственно кому интересно:

font.size.cpp=12
font.monospace.cpp=font:Courier New,size:$(font.size.cpp)
font.base.cpp=$(font.monospace.cpp)

colour.background.cpp=back:#000CDF
colour.keyword.cpp=$(colour.background.cpp),fore:#FFFFFF
colour.string.cpp=$(colour.background.cpp),fore:#ACACD7
colour.number.cpp=$(colour.background.cpp),fore:#00FFFF
colour.main.cpp=$(colour.background.cpp),fore:#FFFF00
colour.preproc.cpp=$(colour.background.cpp),fore:#00FF40
colour.comment.cpp=$(colour.background.cpp),fore:#62F807
colour.operator.cpp=$(colour.background.cpp),fore:#FFFFFF
colour.comment.doc.cpp=$(colour.background.cpp),fore:#66D9D0
colour.comment.doc.error.keyword.cpp=$(colour.background.cpp),fore:#F83C21
colour.comment.doc.keyword.cpp=$(colour.background.cpp),fore:#FFFFFF
colour.keyword2.cpp=$(colour.background.cpp),fore:#70D3FA


style.keyword.cpp=$(font.base.cpp),$(colour.keyword.cpp),bold
style.string.cpp=$(font.base.cpp),$(colour.number.cpp),italics
style.number.cpp=$(font.base.cpp),$(colour.number.cpp)
style.main.cpp=$(font.base.cpp),$(colour.main.cpp),bold
style.preproc.cpp=$(font.base.cpp),$(colour.preproc.cpp)
style.char.cpp=$(style.string.cpp),italics
style.comment.cpp=$(font.base.cpp),$(colour.comment.cpp),italics,notbold
style.operator.cpp=$(font.base.cpp),$(colour.operator.cpp)
style.comment.doc.cpp=$(font.base.cpp),$(colour.comment.doc.cpp),notbold
style.comment.doc.keyword.cpp=$(font.base.cpp),$(colour.comment.doc.keyword.cpp),bold
style.comment.doc.error.keyword.cpp=$(font.base.cpp),$(colour.comment.doc.error.keyword.cpp),bold
style.keyword2.cpp=$(font.base.cpp),$(colour.keyword2.cpp),bold

caret.fore=#EFF40B
caret.width=3

# Default
style.cpp.32=$(style.main.cpp)
# White space
style.cpp.0=fore:#03B1FC
# Comment: /* */.
style.cpp.1=$(style.comment.cpp)
# Line Comment: //.
style.cpp.2=$(style.comment.cpp)
# Doc comment: block comments beginning with /** or /*!
style.cpp.3=$(style.comment.doc.cpp)
# Number
style.cpp.4=$(style.number.cpp)
# Keyword
style.cpp.5=$(style.keyword.cpp)
# Double quoted string
style.cpp.6=$(style.string.cpp)
# Single quoted string
style.cpp.7=$(style.char.cpp)
# UUIDs (only in IDL)
style.cpp.8=fore:#804080
# Preprocessor
style.cpp.9=$(style.preproc.cpp)
# Operators
style.cpp.10=$(style.operator.cpp)
# Identifiers
style.cpp.11=$(style.main.cpp)
# End of line where string is not closed
style.cpp.12=fore:#000000,$(font.monospace),back:#E0C0E0,eolfilled
# Verbatim strings for C#
style.cpp.13=fore:#007F00,$(font.monospace),back:#E0FFE0,eolfilled
# Regular expressions for JavaScript
style.cpp.14=fore:#3F7F3F,$(font.monospace),back:#E0F0FF,eolfilled
# Doc Comment Line: line comments beginning with /// or //!.
style.cpp.15=$(style.comment.doc.cpp)
# Keywords2
style.cpp.16=$(style.keyword2.cpp)
# Comment keyword
style.cpp.17=$(style.comment.doc.keyword.cpp)
# Comment keyword error
style.cpp.18=$(style.comment.doc.error.keyword.cpp)
# Braces are only matched in operator style
style.braces=10
style.cpp.34=$(font.base.cpp),back:#28D7C6,fore:#9BFFFF
style.cpp.33=back:#BDD7DE,$(font.base),fore:#3E48AA,size:10,nobold
Автор: zvyagaaa
Дата сообщения: 06.06.2006 11:03
Господа, умные люди, будете пересобирать сборку?
Автор: mozers
Дата сообщения: 06.06.2006 11:40
zvyagaaa

Цитата:
Господа, умные люди, будете пересобирать сборку?

Я о проблемах написал выше.
Некоторые смог решить сам (понимать команду import в файлах *.abbrev)
С некоторыми помог dB6
mimir - жду ответа на письмо. Еще не все решено!

ALL
Вопросы, которые необходимо решить чтобы выпустить сборку:
1.
Код: command.name.9.*=Размер шрифта по умолчанию
command.9.*=Zoom 0
command.mode.9.*=subsystem:lua,savebefore:no
command.shortcut.9.*=Ctrl+Slash
Автор: mimir
Дата сообщения: 06.06.2006 18:09

Цитата:
Как перехватить стандартную комбинацию ???

Рассуждаем логически:
1 - Символ '\' означает перевод строки. Следовательно
2 - '\\' = слеш + то что на следующей строке.
Отсюда следует
3 - надо записать 'Ctrl+\\' - без пробелов в конце и с пустой следующей строкой.
В ощем все очевидно и просто просто
Проблема только в том что если строка пустая то она пропускаеться
В общем надо ставить эту строчку в последней строке последнего файла.
Завтра напишу исправление (вернее я его уже написал, а завтра выложу-иду домой).


На счет второго так это нуно конфигурить в одном месте.
Я минут 15 разбиралься по коду, как там все работает и в результате убедилься что оно работает как всегда. Потом еще минуты 3 соображал как береться пробел в разделитель параметров когда там стоит зпт.
Оказалось что
calltip.cpp.parameters.separators=
определен в не только в cpp.props, но others.props и соответственно все разделяеться пробелами.

PS. SciteGlobal.props - Вещь.
PPS to mosers.
1) создаем test.js
2) мишем aler и смотрим разницу между Ctrl-I и Ctrl+Enter
Автор: mozers
Дата сообщения: 06.06.2006 20:07
mimir

Цитата:
Рассуждаем логически:
1 - Символ '\'
Не туда. Я немножко переврал вопрос.
Стандартная комбинация
Цитата:
Restore text size to normal - Ctrl+Keypad/
Как ее перехватить ???
Чего я только вместо этого Keypad/ не писал (и так как есть и просто / и Slash и KeypadSlash - ни на что не реагирует
Похоже - баг Невовремя, билин...

Насчет подсветки текущего параметра во всплывающих подсказках разобрался с помощью dB6
Все работает НО только при наборе текста. При Ctrl+Shift+Space на уже готовом коде - нет Тоже вроде как баг...

Цитата:
1) создаем test.js
2) пишем alert и смотрим разницу между Ctrl-I и Ctrl+Enter

В упор не вижу никакой разницы

ALL
Никто не знает как записать текст в статусную строку (LUA)?
Если так:
Код: props["statusbar.text.1"]="наша строка"
Автор: dB6
Дата сообщения: 06.06.2006 20:20
mozers

Цитата:
Насчет подсветки текущего параметра во всплывающих подсказках разобрался с помощью dB6
Все работает [Image] НО только при наборе текста. При Ctrl+Shift+Space на уже готовом коде - нет [Image] Тоже вроде как баг...

Работает при Ctrl+Shift+Space на готовом коде только в том случае, если курсор уже стоял на одном из параметров. Если же курсор поместить на параметр при отображаемой подсказке, то никаких изменений в подсказке не произойдет. Нажимаем Ctrl+Shift+Space и подсвечивается текущий параметр.
Автор: mozers
Дата сообщения: 06.06.2006 20:22
mimir

Цитата:
Оказалось что
calltip.cpp.parameters.separators=
определен в не только в cpp.props, но others.props

И какой дурак эту директиву туда запихал? Наверное - я


Добавлено:
dB6
Да, замудрено сделано. Вроде как и есть но хрен без пол-литры догадаешься как эту радость увидеть
Автор: dB6
Дата сообщения: 06.06.2006 20:43
mozers
А что в сборке не будет всяких разных полезных утилит?



Цитата:
но хрен без пол-литры догадаешься как эту радость увидеть

Честно скажу - не пил
Автор: mozers
Дата сообщения: 06.06.2006 21:50
dB6
Каких еще утилит? Да еще полезных... Кидай идею - реализуем...

Придумал таки как обновлять текст в статусной строке
Просто после смены значения параметра props надо выполнить editor:VCHome()
Что это такое - не знаю (нашел методом научного тыка) но работает
Автор: mimir
Дата сообщения: 07.06.2006 10:24

Цитата:
В упор не вижу никакой разницы

Ты че издеваешси!!!???
Берешь тот файл который ты мне прислал.
Делаешь что я написал и получаешь, что при Ctrl-I(Ctrl-Space) - вылезает подсказка, а при Ctrl+Enter - нет. Я это проверил только что. Я не пытаюсь сказать что лучше, но это есть.


Цитата:
Чего я только вместо этого Keypad/ не писал (и так как есть и просто / и Slash и KeypadSlash - ни на что не реагирует



Цитата:
Рассуждаем логически:

'+' - Plus
'-' - Minus
Остаеться всего два оператора - умножение и ... провильно ДЕЛЕНИЕ
соответственно
'*' - Multiply
'/' - Divide
Ну и '.' - Decimal


Цитата:
Похоже - баг ...

(Сам нашел в исходниках, а в справке только KeypadPlus, KeypadMinus.)

И еще.
Это только меня раздражает когда по Esc закрываеться приложение. Поправить самому это можно, но зачем это вообще нодо делать. Я например привык Esc закрывать списки дополнения.
Автор: mozers
Дата сообщения: 07.06.2006 11:58
SciTE 1.69 Ru-Board Edition

Цитата:
[07.06.2006] Сборка (ядро 1.69 .07Ru)
- Новое ядро .07Ru - Доработанный вариант оригинальной версии 1.69
Хотя Neil Hodgson многое, придуманное mimir-ом учел, но еще много чего нет. Поэтому вновь было поправлено:
1. Исправлена ошибка зависания SciTE при использовании command.input.
2. Исправлена ошибка с выводом текста по command.input и $(CurrentSelection) исключительно в кодировке UTF-8
(без этого многие скрипты будут просто неработоспособны)
3. Вновь научили Скайт понимать команду import в файлах *.abbrev

- Добавлен файл help\ScintillaHistory_rus.html (Автор перевода: ALeXkRU)
- Все основные файлы настроек перенесены из каталога properties в единственный файл - SciTEGlobal.properties
- В SciTEGlobal.properties организованы логические самосворачивающиеся секции (Автор идеи: Vadikan, Реализация: mozers™)
- Новый html.api и модернизированная подсветка синтаксиса PHP (Автор: Сергей Тугаринов)
- Переделан скрипт изменения размера отображаемого шрифта синхронно с печатным (Автор mozers™)
- Модернизирован скрипт трассировки выделенного текста в коды ASCII (ascii.lua) (Автор: gansA)
- Добавлен скрипт, генерирующий таблицу ASCII (ASCIITable.lua) - удобен в комплекте с предыдущим (Автор: khman)
- Мелкая правка скрипта атозакрытия скобок (по умолчанию он теперь отключен) (Авторы: gansA, mimir)
- Установка/снятие закладок (Bookmark) с помощью мыши
- Некоторые скрипты, ввиду их недоработанности, исключены из меню (но остались в каталоге)
- Куча небольших, но важных корректировок всех настроек (Коррективы: dB6, mimir)

Ссылка: SciTE_169_7Ru_070606.zip [890kB]
Автор: mozers
Дата сообщения: 07.06.2006 21:49
mimir

Цитата:
Ты че издеваешси!!!???
при Ctrl-I(Ctrl-Space) - вылезает подсказка, а при Ctrl+Enter - нет

Точно так и есть. Туплю я

Давай все таки расставим все точки над i
У нас в меню 4 пункта:
1. Complete Symbol (Ctrl+I) или недокументированная (Ctrl+Space)
2. Complete Word (Ctrl+Enter)
3. Expand Abberation (Ctrl+B)
4. Insert Abberation (Ctrl+Shift+R)

В подключенном (я надеюсь) jscript.api добиваем 2 строчки
Код: AutocompleteFunction_from_Api
AutocompleteOther_from_Api
Автор: gansA
Дата сообщения: 08.06.2006 09:14
mozers
Немного подкрутил твой скрипт, установки меток двойным кликом.
Собсно добавил подсчет символов начала строки, что исключает случаии установки меток при дваойном клике на пустой строке, когда захватываются символы \r\n для 2 строк.
Для установки метки надо кликнуть по любому слову в строке.
Мож кому пригодится.

Цитата:

-- Установка / снятие закладок на строку (Bookmark) (то же что и Ctrl+F2)
-- с помощью двойного клика мыши
-- mozers™ icq#256106175
function OnDoubleClick()
local i = editor:LineFromPosition(editor.CurrentPos)
    local j = CountEnter(editor:GetSelText()) --// count \n

if editor:MarkerGet(i) == 0 and j == 0 then
editor:MarkerAdd(i,1)
else
editor:MarkerDelete(i,1)
end
end

function CountEnter(strInput)
    local i = 0
    for w in string.gfind(strInput, '\n') do
        i = i + 1
    end

    return i
end

Автор: dB6
Дата сообщения: 08.06.2006 18:30

Цитата:
скрипт, установки меток двойным кликом.

Хм. Каждый раз, когда я хочу выделить слово с помощью двойного клика, у меня будет ставиться/сниматься закладка??
Автор: mozers
Дата сообщения: 08.06.2006 22:17
gansA dB6
Вообще идеальный вариант чтобы маркер устанавливался от клика по колонке с номерами строк. Увы но OnMarginClick() не имеет параметров. Поэтому букмарк ставится не на той стоке по которой кликнули а на той, на которой стоит курсор
Еще вариант - кликать мышей с одновременно нажатой клавишей. Тоже проблема - как узнать какая клавиша в данный момент нажата?
А в сегодняшнем варианте, согласен, скрипт как та клавиша Esc на закрытие SciTE. (Вроде бы иногда и удобно, но ЗАДОЛБАЛА

Добавлено:
Вообще то MarginClick выделяет строку.
Второй MarginClick по этой строке снимает выделение и перемещает курсор в ее начало.
Если все это дело отследить, то двойной MarginClick будет ставить/снимать метки самым оптимальным образом...
Автор: gansA
Дата сообщения: 09.06.2006 08:05
mozers dB6
Тут все дело вкуса, кто как привык пользоваться мышой .
Ведь этот скрипт дает еще одну возможность установки маркеров, помимо существующих:
1. стандартное нажатие Ctrl+F2 (можно перевесить на любое удобное и привычное сочетание клавиш)
2. поиск с установкой маркеров

По поводу MarginClick не все так просто , птому как на маржине в месте установки маркера может находиться fold.symbols и что тогда? Тогда заморочки с фолдингом...

PS: mozers

Автор: mozers
Дата сообщения: 09.06.2006 11:07
gansA

Цитата:
стандартное нажатие Ctrl+F2

Для себя - можно, для народа переназначать стандартную комбинацию - дурной тон.

Цитата:
поиск с установкой маркеров

Так оно уже есть (встроено) - "Пометить все"


Цитата:
По поводу MarginClick не все так просто , птому как на маржине в месте установки маркера может находиться fold.symbols и что тогда?

Нее... Тут - все путем пузырьки фолдинга чуть правее.
Тыкать надо прямо на циферу с номером строки.
1й клик - определяем SelectText и сохраняем в переменной
2й клик - извлекаем содержимое строки на которой стоит курсор и сравниваем с переменной
Если равно - значит надо либо снять либо поставить маркер.
Если никто не опередит (говорю потому, что хотелось бы чтобы опередили) - сам набросаю.
Автор: gansA
Дата сообщения: 09.06.2006 15:14

Цитата:
Так оно уже есть (встроено) - "Пометить все"

Дык я и перечилял стандартные методы ))).


Цитата:
OnMarginClick

Слишком неоднозначное решение получается, тк привязка маркера идет к курсору, а юзверь захочет поставить маркер на другой строке...

Лично меня двойной клик по слову с выделением нисколько не смушает )
Автор: St_MPA3b
Дата сообщения: 09.06.2006 20:34
добавьте новый рубордовский билд в щапку, у меня времени нету)
Автор: mozers
Дата сообщения: 09.06.2006 21:43
gansA

Цитата:
Слишком неоднозначное решение получается, тк привязка маркера идет к курсору

Ох, все вы программисты, усложняете так что простому смертному страшно становится взяться за решению любой задачи
Про OnMarginClick я еще наврал... Оказывается на щелчок по колонке с номерами строк вообще ни одно событие не откликается
OnMarginClick - щелчок только по колонке со значками фолдеров.
Глухо... Ан, нет - исхитрится можно

Код: -- Установка / снятие закладок на строку (Bookmark) (то же что и Ctrl+F2)
-- с помощью двойного клика мыши на боковой панели с номерами строк
-- mozers™ icq#256106175

sel_text = ''

function SetMarker()
local i = editor:LineFromPosition(editor.CurrentPos)
if editor:MarkerGet(i) == 0 then
editor:MarkerAdd(i,1)
else
editor:MarkerDelete(i,1)
end
end

function OnUpdateUI()
local line_text = editor:GetCurLine()
if line_text ~= '' and line_text == sel_text and editor:GetSelText() == '' then
SetMarker()
end
sel_text = editor:GetSelText()
end

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869

Предыдущая тема: LeechGet


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.