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

» SciTE - Open Source Text Editor for Windows & Linux

Автор: mimir
Дата сообщения: 05.04.2006 13:22
ИМХО тормазит подсветка парных скобок

Добавлено:

Цитата:
"Обвинения" снимаются

Спасибо
Автор: dB6
Дата сообщения: 05.04.2006 13:26
mimir
Цитата:
Может это связано с "dos866<->win1251"?

Сомневаюсь... Там если кодировка win - ничего не вызывается кроме одной проверки.

Просто странно, до этого таких глюков не было, а проявились только с добавлением твоего кода.

Добавлено:

Цитата:
ИМХО тормазит подсветка парных скобок

Причем тут, если там их нету?;)


Добавлено:
Опять словил
Автор: mimir
Дата сообщения: 05.04.2006 13:51
У меня чето не получается воспроизвести, правда один раз тоже получилось, а как ХЗ
А если выключить braces.autoclose=0
Как изменяеться расход памяти
Автор: dB6
Дата сообщения: 05.04.2006 14:45
mimir
Все.. "Обвинение" снимаю окончательно. Потестил все - баг не из-за твоего кода.
Переодичность возникновения не ясна, но заметил две фичи:
1. Когда набирается текст на енг. Если русский - то все ок.
Имхо, связано с принадлежностью к chars.alpha.
2. Если текста много в открытом документе, то шанс поймать баг больше.

От така фигня...


Добавлено:
Кстати, спасибо за толковый скрипт
Автор: gansA
Дата сообщения: 05.04.2006 17:21
mozers
Вопрос: не пробовал в конфиге раскоментить find.replace.advanced=1? )
Автор: UsAr
Дата сообщения: 05.04.2006 19:54
вот тоже решил перейти с EditPlus'a на SciTE, почти всё настроил под себя, но есть несколько вопросов.

1. Какие парамтры отвечают за цвет и фон консоли? (куда результаты компилирования выводятся)
2. Можно ли как-то включить многострочную обработку текста? (т.е. использовать \n в regexp'ах для поиска и замены)
3. как бы настроить фолдинг для masm'a?
например для конструкций такого вида
.IF eax == 0
; some code 1 ...
.ELSEIF eax == 1
; some code 2 ...
.ELSE
; some code 3 ...
.ENDIF
4. можно ли подсветить все эти API или их нужно опять вписывать в keywords?
5. как сделать чтобы keywords'ы подсвечивались только когда совпадает регистр?

UPD:
1. уже разобрался, если кому интересно это все style.errorlist.* в файле others.properties
Автор: mimir
Дата сообщения: 06.04.2006 09:51
UsAr

Цитата:
как бы настроить фолдинг для masm'a?

Лексер асма не проддерживает фолдинга (в справке написаны лексеры которые его поддерживают)

Цитата:
можно ли подсветить все эти API или их нужно опять вписывать в keywords?

Да. Весь принцип подсветки именно в этом и заключаеться. К сожелению лексер асма не поддерживает пользовательских ключивых слов как например лексер срр и он обрабатывает только 6 первых групп ключивых слов.

Цитата:
как сделать чтобы keywords'ы подсвечивались только когда совпадает регистр?

Только правкой исходников. В принципе я это уже сделал, щас только хочу сделать эту возможность управляемой(через .props например keywords.lexer.ignorecase но пока будет браться только для асма) и может если получиться добавлю и еще одину группу ключивых слов.

Можно еще попробывать другой лексер(который имеет фолдинг и являеться регистрочуствительным), подставив ему ключивые слова асма, но какой именно подсказать не могу
Автор: UsAr
Дата сообщения: 06.04.2006 11:39
mimir
очень жаль, видимо прийдется изрядно повозиться с исходниками =(

и еще один вопрос: можно как-то подсветить слова заканчивающиеся на ":"? просто там все метки так обозначаются и было бы удобно их выделить.
Автор: mimir
Дата сообщения: 06.04.2006 11:59
Добавление еще одного keyword и keywords.ignorecase достаточно просто.

1.
LexASM.cxx ColouriseAsmDoc
bool IgnoreCase = styler.GetPropertyInt("keyword.asm.ignorecase");
и заменить
sc.GetCurrentLowered(s, sizeof(s));
на
if (!IgnoreCase) {
sc.GetCurrent(s, sizeof(s));
} else {
sc.GetCurrentLowered(s, sizeof(s));
}
2.
LexASM.cxx ColouriseAsmDoc

WordList &UserList = *keywordlists[6];

} else if (UserList.InList(s)) {
sc.ChangeState(SCE_ASM_USERWORD);
}

Соответственно надо прописать keyword.asm.ignorecase в файле SciteProps в массиве
propertiesToForward, а SCE_ASM_USERWORD - я везде прописал рядом с
SCE_ASM_EXTINSTRUCTION.

На счет фолдинга, то можно для начала взять какой то готовый например FoldSQLDoc и поменять его под себя



Автор: mozers
Дата сообщения: 06.04.2006 14:03
gansA
Цитата:
не пробовал в конфиге раскоментить find.replace.advanced=1?
Опа! А я, дурак, даже скрипт хотел писать для этого дела
Замечательная подсказка!
Есть у меня серьезное подозрение, что не только это я прошляпил...
vbscript.api получил, СПАСИБО. Маленько поправлю и включу в сборку.

mimir
За точку - огромное СПАСИБО. Тоже сам не допер почему то...
Теперь можно автозакрытие в сборку включать?
Код ядра, я чувствую, еще претерпит изменения

ALL
Написал я таки COM-сервер этот
Сильно прошу не бить - "бетта". Т.е. щас можно писать так:
Код: 'Это - пример и описание всех доступных методов:
'===============================================
'Вначале создаем объект

Set SciTE=CreateObject("SciTE.Helper")

'Извлекаем весь текст с активной страницы
Msgbox SciTE.GetText

'Извлекаем только выделенный текст с активной страницы
Msgbox SciTE.GetSelText

'Заменяем выделенный на активной странице текст на наш
SciTE.ReplaceSel "ВАСЯ"

'Вызываем внутреннюю команду SciTE (окошко "О программе")
'Список всех доступных команд - в файле SciTE.h

SciTE.Command(902)

'Ну как же без этого
SciTE.About
Автор: mirk
Дата сообщения: 06.04.2006 17:47
Выложил на What New`s русском.
xdude, ALeXkRU спасибо большое за помощь.
Автор: dB6
Дата сообщения: 06.04.2006 18:24
mimir
Есть маленькая идея насчет переноса строк по Alt+Up и Alt+Down.
Но только для переноса 1 строки вверх/вниз.
В SciTE же есть встроенная функция - поменять строки местами (Ctrl+T). И если сделать, чтобы курсор переходил вслед за строкой, то получится Alt+Up. Думаю, на основе можно и Alt+Down сделать.
Насчет 1 строки - точно. Насчет нескольких - не знаю, код не смотрел.
Автор: mimir
Дата сообщения: 06.04.2006 18:28
А как она хоть называеться, а то искать как то лень
Автор: dB6
Дата сообщения: 06.04.2006 19:16
mimir

Код: # Switch the current line with the previous.
fun void LineTranspose=2339(,)
Автор: mozers
Дата сообщения: 06.04.2006 22:59
Все таки не работает автодополнение так как хотелось бы
Или туплю я...
Например, имеем запись в api:
Код: WScript.StdIn.Read(characters)
WScript.StdOut.Write(string)
Автор: mimir
Дата сообщения: 07.04.2006 09:52

Цитата:
Т.е. слова, на предмет возможности дополнения, Скайт анализирует с начала строки. А надо бы сначала ему поглядеть не стоит ли слева точка или пробел. Если стоит, то анализировать не с начала строки, а с нее.

Эта проблема заключаеться в идеологии.
В разных объектах могут иметься разные методы с одиноковым именем,
т.е. метод Read может быть в одном объекте Read(characters), в другом Read(), а в третьем его вообще может не быть.
В таком случае myObj.Re должен аналезировать myObj и в зависимости от этого выдавать и подстановку и подсказку. К сожелению задача определения типа по имени и формирование в зависимости от типа списка процедур задача весьма сложная и как ее решать я если честно слабо представляю, да и сомниваюсь что это появиться в ближайшее время в SciTE.
Поэтому мне кажеться что правельнее анализировать целиком myObj.StdOut.Write, хотя это также не очень красиво

Цитата:
# Switch the current line with the previous.
fun void LineTranspose=2339(,)

Спасибо. Посмотрю.
Автор: UsAr
Дата сообщения: 07.04.2006 11:02
mimir
спасибо помогло
сделал фолдинг для масма на основе лексера lua. измененные файлы решил выложить, может понадобятся кому
http://usar.gorodok.net/tmp/scite.asm.rar
Автор: mirk
Дата сообщения: 07.04.2006 12:24
UsAr
При желании вы можете оформить ваше решение в виде статьи (пару строчек), и выложить на сайте, вообщем оставить свое имя в веках
От вашего имени статью как то неудобно писать
Автор: AntiBIOtic
Дата сообщения: 07.04.2006 12:37
есть возможность прикрутить подсветку синтаксиса Forth (форт) ?
Автор: ALeXkRU
Дата сообщения: 07.04.2006 13:33
AntiBIOtic
так он там и так есть... максимум, что может потребоваться - раскоментировать в настройках

Добавлено:
проверь, должен быть файлик forth.properties
Автор: UsAr
Дата сообщения: 07.04.2006 13:56
mirk
честно говоря лень да и автор из меня некудышный. А статью лучше пишите от своего имени.
Автор: mirk
Дата сообщения: 07.04.2006 14:46
UsAr
В общем это не совсем статья, так, новость.
В течении недели размещю.
Автор: mozers
Дата сообщения: 07.04.2006 15:53
mimir

Цитата:
В разных объектах могут иметься разные методы с одиноковым именем

Это - не страшно. Тогда в api надо будет прописать все методы обоих объектов в виде:
Код: obj1.metod1
obj1.metod2
obj2.metod1
obj2.metod2
Автор: UsAr
Дата сообщения: 07.04.2006 16:13
mozers

Цитата:
Сам, правда, на Ассемблере со времен DOS не писал. Даже не представляю как на нем написать какую нить элементарную API-шную функцию... Страницы две кода... Не меньше...

зря, с масмом под windows гораздо проще писать стало. Код стал больше сишный напоминать

Цитата:
А ты от каких исходников отталкивался, когда код правил?

в основном LexLua и немного LexVerilog

Цитата:
А если я твое решение в сборку включу ?

Включай конечно, так будет удобнее - я как раз ей и пользуюсь
Автор: mozers
Дата сообщения: 07.04.2006 16:30
ALL
Все думаю, может ошибся я где то? Может Скайт без всякой переделки может так дополнять (считая от точки) ??? Народ, попробуйте на досуге (выходные впереди) подключить такой js_test.api:
Код: window.document
window.window
document.parentWindow
document.body
body.style
parentWindow.document
parentWindow.window
style.font
style.color
Автор: UsAr
Дата сообщения: 07.04.2006 16:57
mozers

Цитата:
не понял... я спрашивал от какой версии SciTE ты брал исходные файлы? От 1.68 ? Не с нуля же писал?

Ну да. Качал 1.68
Автор: ALeXkRU
Дата сообщения: 07.04.2006 17:42
mozers

Цитата:
Такая логика (брать слово до точки слева и по нему, а не по полному тексту, искать варианты для автодополнения) имхо самая правильная

тут, IMHO, очень регеспы пригодились бы... их нельзя задействовать в api?
Автор: mozers
Дата сообщения: 07.04.2006 21:38
ALeXkRU
Нее... Регулярные выражения позволительны только при поиске...
Если только mimir это не внедрит
Хотя, как мне кажется, что и без них тут вполне можно обойтись.

mimir
Я вот думаю (все про то же) что наверное не стоит строки для автодополнения из api брать. Формат то - совсем другой. Один хрен сегодня надо писать в api по 2 строчки (одну - для автодополнения, а другую - для подсказки).
Может предусмотреть отдельные файлы чисто для автодополнения?
Так как то логичнее будет нежели теперь.
Автор: Perchilla
Дата сообщения: 08.04.2006 02:44
Господа, у меня есть к вам несколько вопросов, прошу прощения если повторяюсь но 33 страницы топика просто не осилил.
Существуют ли и где можно достать следующие фишки для SciTE:
1. Что - то наподобии FTP explorer в PHPExpertEditor (для работы нужно позарез)
2. Навигатор по коду PHP. Class browser - желательно, ну и переход по функциям.
3. Менеджер проектов.

Все фишки есть PHPExpertEditor, но он мне со своими глюками немного поднадоел.

PS. пора бы уже раздел свой открывать .
Автор: mozers
Дата сообщения: 08.04.2006 15:23
Perchilla
Поздравляю с первым постом
Вообще SciTE - достаточно простой текстовый редактор. Достоинство его в том, что к нему подключить можно практически все. Поэтому, если видел кто то все эти фичи в качестве отдельной программы, то сообщите - подумаем и присобачим к Скайту...
Многие пользуются SideWinder и Filerx - это, пожалуй, самые основные расширители функционала.
У меня как то ни та ни другая прога не прижилась. Чесно говоря ни с одной не разобрался до конца...
Вот если б кто рассказал популярно о них...

ALL
Переписал скрипт выбора цвета из палитры "Цветочник" на HTA.
Работает на порядок быстрее предыдущей связки (VBS + HTML)

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869

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


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