сделать стартовой  |  добавить в избранное

   SciTE - редактор кода для программистов

Архив SciTE-форума


Автор: mozers, Отправлено:11:47 04-04-2010
Эту приблуду предложил UR4LTZ. Он же сделал первую реализацию. После рехтовки напильником получилось это:
Код:
command.parent.44.*=4
command.name.44.*=Insert TABs
command.44.*=dostring \
local current_pos = editor.CurrentPos \
local current_line = editor:LineFromPosition(current_pos) \
local chk_line = current_line \
local chk_line_start_pos, chk_line_end_pos \
repeat \
chk_line = chk_line-1 \
chk_line_start_pos = editor:PositionFromLine(chk_line) \
chk_line_end_pos = editor.LineEndPosition[chk_line] \
until chk_line_start_pos ~= chk_line_end_pos \
local _, spc_pos = editor:findtext("\\s+", SCFIND_REGEXP, editor:FindColumn(chk_line, editor.Column[current_pos]), chk_line_end_pos) \
if spc_pos then editor:AddText((' '):rep(editor.Column[spc_pos] - editor.Column[current_pos])) end
command.mode.44.*=subsystem:lua,savebefore:no
command.shortcut.44.*=Ctrl+Shift+Tab
С помощью такой команды, появляющейся в меню Tools, становится очень удобно делать таблицы (текст в колонках).
Допустим, мы написали так:
Function iValue oValue
| | |
Теперь, если мы перейдем на другую строку и
нажмем Ctrl+Shift+Tab, то курсор ввода очутится у начала 1 слова - мы можем написать название функции,
нажмем Ctrl+Shift+Tab вновь - курсор ввода очутится у начала 2 слова - напишем значение,
нажмем Ctrl+Shift+Tab вновь - курсор ввода очутится у начала 3 слова - напишем другое значение.
Надеюсь, понятно объяснил???
Зацените! Если нравится - добавим в SciTE-Ru.
Автор: Kastermight, Отправлено:18:40 05-04-2010
Попробовал. Классная штука. И очень просто реализовано. Молодец, UR4LTZ.
Буду активно следить за всеми допиливаниями!
Автор: Psorokin, Отправлено:18:46 05-04-2010
mozers
Не работает. Выдаёт:
[string "\"]:1: unexpected symbol near '\'
>Lua: error occurred while processing command
Где ошибка?

Неплохо было бы добавить такую возможность в скрипт разворачивания аббревиатур.
Например, разворачиваем аббревиатуру ссылки
<a href="l">l</a>l
и перемещаемся между l (или другой спец символ).

Как настроить разворачивае аббревиатур, чтобы выделенное слово вставлялось только вместо %SEL%, а курсор оказывался на месте l
Автор: Iworb, Отправлено:19:54 08-04-2010
есть такой технический вопросик. Я пишу на С/С++ и при попытке компилировать обычный файл выдает
>g++ -pedantic -Os -c Untitled1.cpp -o Untitled1.o
>Не удается найти указанный файл.


(Untitled1.cpp - название файла)
программу только установил (еще не знаю что к чему), может кто подскажет что делать? (на компьютере есть еще wxDev-Cpp и TurboC которые компилят cpp файлы(wxDev-Cpp вообще на minigw построен))
Автор: mozers, Отправлено:22:23 08-04-2010
Iworb
1. Забываем о существовании SciTE и сочиняем батник из 1 строки, который железно компилит наш файл (вопросы типа "как запустиь компиляцию с ком.строки" тут не рассматриваются).
2. Вставлям строчку из батника сюда.
С первым постом
Автор: wyxa, Отправлено:10:10 09-04-2010
Подскажите одну мелочь. При открытии одного ini-файла, секции отображаются развёрнутыми. С другими файлами почему-то не так (?). Как сделать так, чтобы они были свёрнуты сразу при открытии?
Автор: ALeXkRU, Отправлено:13:21 09-04-2010
wyxa
открывай файл глобальных настроек и ищи секцию:

Цитата:
[Folding] Свертывание блоков текста


Автор: mozers, Отправлено:13:32 09-04-2010
wyxa
Если речь - о сборке SciTE-Ru, то там fold.on.open отключен и все делает скрипт RestoreRecent.lua:
Если расширение файла соответствует расширению, указанному в fold.on.open.ext, то этот файл после открытия сразу сворачивается.
Но это происходит только для тех файлов, которые не открывали раньше.
Если файл раньше открывался, то скрипт будет восстанавливать то состояние фолдинга, которое было при его последнем закрытии.
Не нравится алгоритм? - предложите свой
Автор: wyxa, Отправлено:16:31 09-04-2010
mozers
Цитата:
Если файл раньше открывался, то скрипт будет восстанавливать то состояние фолдинга, которое было при его последнем закрытии.
Я был бы счастлив, если бы это было так. Но он просто разворачивает все секции т.е. не сворачивает ни одной. Может, это только у меня так…
Как я понял, при закрытии, он должен запомнить закрытые и открытые, а затем восстановить состояние.
Но меня устраивает, чтобы все были закрыты.

Добавлено:
Кстати, забыл добавить, что этот ini-файл синтаксически может быть неверен (если там есть определённый синтаксис. Может быть поэтому RestoreRecent.lua не срабатывает.
Автор: mozers, Отправлено:17:19 09-04-2010
wyxa
Синтаксис тут - пофиг.
Скрипт восстанавливает то состояние фолдинга, которое было установлено ручками при последнем закрытии файла.
Точнее - должен восстанавливать. Однако, признаюсь, глючит
Например, если в файле - единственная раскрытая свертка, то скрипт сворачивает все что выше ее, а на все что ниже кладет ... Причем это происходит не всегда... Порой - срабатывает. Ошибку пока выловить не могу
Так что если - задолбало, то посоветую закомментировать
в SciTEGlobal.properties параметр session.folds=1
и в RestoreRecent.lua 129 строчку " else ".
Автор: zoric, Отправлено:13:49 13-04-2010
Как добавить в Fnc/Bmk методы method и события on?
Автор: mozers, Отправлено:20:57 14-04-2010
ALL
Как то незаметно для нашего форума прошли два серьезных обновления SciTE:

Цитата:
Release 2.11

  • Released 9 April 2010.
  • Fixes compatibility of Scintilla.h with the C language.
  • With a rectangular selection SCI_GETSELECTIONSTART and SCI_GETSELECTIONEND return limits of the rectangular selection rather than the limits of the main selection.
  • When SciTE on Windows is minimized to tray, only takes a single click to restore rather than a double click. Feature #981917.

Release 2.10

  • Released 4 April 2010.
  • Version 1.x of GTK+ is no longer supported.
  • SciTE is no longer supported on Windows 95, 98 or ME.
  • Case-insensitive search works for non-ASCII characters in UTF-8 and 8-bit encodings.
  • Non-ASCII characters may be changed to upper and lower case.
  • SciTE on Windows can access all files including those with names outside the user's preferred character encoding.
  • SciTE may be extended with lexers written in Lua.
  • When there are multiple selections, the paste command can go either to the main selection or to each selection. This is controlled with SCI_SETMULTIPASTE.
  • More forms of bad UTF-8 are detected including overlong sequences, surrogates, and characters outside the valid range. Bad UTF-8 bytes are now displayed as 2 hex digits preceded by 'x'.
  • SCI_GETTAG retrieves the value of captured expressions within regular expression searches.
  • Django template highlighting added to the HTML lexer. Feature #2974889.
  • Verilog line comments can be folded.
  • SciTE on Windows allows specifying a filter for the Save As dialog. Feature #2943445.
  • Bug fixed when multiple selection disabled where rectangular selections could be expanded into multiple selections. Bug #2948260.
  • Bug fixed when document horizontally scrolled and up/down-arrow did not return to the same column after horizontal scroll occurred. Bug #2950799.
  • Bug fixed to remove hotspot highlight when mouse is moved out of the document. Windows only fix. Bug #2951353.
  • R lexer now performs case-sensitive check for keywords. Bug #2956543.
  • Bug fixed on GTK+ where text disappeared when a wrap occurred. Bug #2958043.
  • Bug fixed where regular expression replace cannot escape the '\' character by using '\\'. Bug #2959876.
  • Bug fixed on GTK+ when virtual space disabled, middle-click could still paste text beyond end of line. Bug #2971618.
  • SciTE crash fixed when double clicking on a malformed error message in the output pane. Bug #2976551.
  • Improved performance on GTK+ when changing parameters associated with scroll bars to the same value. Bug #2964357.
  • Fixed bug with pressing Shift+Tab with a rectangular selection so that it performs an un-indent similar to how Tab performs an indent.

SciTE-Ru, увы, задерживается...

zoric
Отредактировать SideBar.lua (какой вопрос - такой и ответ)
Автор: zoric, Отправлено:09:25 15-04-2010
Отредактировать то можно - знать бы ещё что именно
У меня вот с наскока не вышло. А вникать времени особого нет.
Насколько я понял - ключевые слова никуда не вынесены, а разбросаны по коду?
Автор: mozers, Отправлено:11:43 15-04-2010
zoric
Мы говорим о списке функций/процедур имеющихся в коде?
Так там ведется синтаксический анализ конкретного языка программирования (о каком языке разговор то???) в котором ключевые слова - это лишь признак (не всегда обязательный).
Потрудитесь четко сформулировать вопрос. Только так есть шанс получить ответ.
Автор: Zakkazak, Отправлено:14:52 15-04-2010
доброго всем времени суток! уточните пожалуста,

я так понял поиск-и-замену в сабже можно делать только построчно,
т.е. задать регекс-шаблон соответствующий нескольким строкам текста невозможно
..или это можно как-то сделать ??? , ведь в регексах ограничение на новую строку (LF)нужно как-то обходить
Автор: mozers, Отправлено:15:09 15-04-2010
Zakkazak
Увы
Автор: Zakkazak, Отправлено:15:40 15-04-2010
mozers
да в жизни всегда так, обламываешься в самый неожиданный момент ..

с этим можно жить как-то, решил для себя так:
заменил CRLF на ttttttttttttt - временно, чтоб потом можно было вернуть обратно

второй облом в том что, несмог отключить "жадный" режим знаком вопроса
можно как-то сделать через файлы настроек ?
спасибо!
Автор: zoric, Отправлено:21:39 15-04-2010
mozers
Спасибо за внимание. Язык - диалект JavaScript

http://docs.dead-code.org/

The scripting language used in WME is based on JavaScript. In fact it’s a very simplified version of JavaScript but extended by some features specific to game scripting and simultaneous processing of multiple scripts. If you are already familiar with JavaScript (or a similar programming language, such as Java, C++ or PHP) you should be able to start writing WME scripts almost immediately. Otherwise I recommend you study some programming literature. It’s beyond the scope of this document to teach you programming; the language features and constructs will be described very briefly.

В SideBar показываются только функции. Очень хочется добавить

method blabla() {

}

и

on "blabla" {

}

Автор: mozers, Отправлено:14:51 16-04-2010
Zakkazak
Все скромные возможности регулярных выражений в диалоге поиска/замены описаны тут.
Расширять функционал никто не собирается.
Я на JS скриптик написал, но он только ищет, замена - в планах (не ближайших).

zoric
Вот теперь - другое дело. Наконец то есть на что отвечать
Анализ JS кода находится между строками 710 и 727 SideBar.lua.
Для анализа используется lpeg в котором я, увы, не рублю.
Однако, методом тыка, заставил определятся method - ы.
SideBar.lua [строка 710] :
Код:
do --v----- JS ------v--
-- redefine common patterns
local NL = NL + P"\f"
local regexstr = P'/' * (ESCANY - (P'/' + NL))^0*(P'/' * S('igm')^0 + NL)
local STRING = STRING + regexstr
-- define local patterns
local f = P"function"
local m = P"method"
local funcbody = P"{"*(ESCANY-P"}")^0*P"}"
-- create additional captures
local I = C(IDENTIFIER)*cl
-- definitions to capture:
local funcdef = Ct((f+m)*SC^1*I*SC^0*par*SC^0*(#funcbody))

-- resulting pattern, which does the work
local patt = (funcdef + IGNORED^1 + IDENTIFIER + 1)^0 * EOF

Lang2lpeg.JScript = lpeg.Ct(patt)
end --^----- JS ------^--
С эвентами допетрить так и не смог - передам TymurGubayev - уверен что ему это несложно.
Хотя можешь не ждать, а сам попытаться...
Автор: ruruboard, Отправлено:15:21 16-04-2010
Ребят, тут одна проблема возникла (впервые столкнулся): поставил свежую русскую сборку, всё работает, всё летает. Понадобилось открыть файл на 10 мег - всё ОК, прокручивается, подсвечивает (SQL скрипт), но при работе (например, выделить фрагмент и удалить) - ЖУТКО ТОРМОЗИТ. Прога зависала секунд на 15, после чего фрагмент удалялся. Внесение текста тоже безумно медленное, по символу в секунду.
Решил на всякий проверить в оригинальной сборке (2.11) - этот же файл отрабатывал безо всяких тормозов, будто в нём 1 килобайт!

Отсюда пожеление/вопрос: с чем это может быть связано и как это вылечить? Есть подозрение на Lua, но я его не прикручивал и механизма не знаю, так что заранее винить не буду.



1 / 2 / 3 / 4 / 5 / 6 / 7 / 8 / 9 / 10 / 11 / 12 / 13 / 14 / 15 / 16 / 17 / 18 / 19 / 20 / 21 / 22 / 23 / 24 / 25 / 26 / 27 / 28 / 29 / 30 / 31 / 32 / 33 / 34 / 35 / 36 / 37 / 38 / 39 / 40 / 41 / 42 / 43 / 44 / 45 / 46 / 47 / 48 / 49 / 50 / 51 / 52 / 53 / 54 / 55 / 56 / 57 / 58 / 59 / 60 / 61 / 62 / 63 / 64 / 65 / 66 / 67 / 68 / 69 / 70 / 71 / 72 / 73 / 74 / 75 / 76 / 77 / 78 / 79 / 80 / 81 / 82 / 83 / 84 / 85 / 86 / 87 / 88 / 89 / 90 / 91 / 92 / 93 / 94 / 95 / 96 / 97 / 98 / 99 / 100 / 101 / 102 / 103 / 104 / 105 / 106 / 107 / 108 / 109 / 110 / 111 / 112 / 113 / 114 / 115 / 116 / 117 / 118 / 119 / 120 / 121 / 122 / 123 / 124 / 125 / 126 / 127 / 128 / 129 / 130 / 131 / 132 / 133 / 134 / 135 / 136 / 137 / 138 / 139 / 140 / 141 / 142 / 143 / 144 / 145 / 146 / 147 / 148 / 149 / 150 / 151 / 152 / 153 / 154 / 155 / 156 / 157 / 158 / 159 / 160 / 161 / 162 / 163 / 164 / 165 / 166 / 167 / 168 / 169 / 170 / 171 / 172 / 173 / 174 / 175 / 176 / 177 / 178 / 179 / 180 / 181 / 182 / 183 / 184 / 185 / 186 / 187 / 188 / 189 / 190 / 191 / 192 / 193 / 194 / 195 / 196 / 197 / 198 / 199 / 200 / 201 / 202 / 203 / 204 / 205 / 206 / 207 / 208 / 209 / 210 / 211 / 212 / 213 /
SciTE © 2004 - 2011