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

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

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


Автор: vladvro, Отправлено:11:12 16-09-2008
frs

Цитата:
Можно объединить методы, не лезть же каждый раз в SideBar добавляя недостающее расширение, если дефолтный паттерн не устраивает.

Верно.

mozers

Цитата:
Мне кажется что можно привязать паттерн, соответствующий текущему лексеру к определенному рексепу...

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

Добавлено:
немного поправил код
SideBar.lua [строка 297] : [more]
Код:
---------------------------------------------------------
-- List: Functions/Procedures
----------------------------------------------------------
list_func:on_double_click(function(idx)
local pos = list_func:get_item_data(idx)
if pos then
editor:GotoLine(pos)
editor.Focus = true
end
end
)

local FIND_FUNC_REG_EXP = {
[
'cpp']="([^.,<>=\n]-[ :][^.,<>=\n%s]+[(][^.<>=)]-[)])[%s\/}]-%b{}",
[
'js']="(\n[^,<>\n]-function[^(]-%b())[^{]-%b{}",
[
'vbs']="(\n[SsFf][Uu][BbNn][^\r]-)\r",
[
'css']="([%w.#-_]+)[%s}]-%b{}",
[
'pas']="\n[pPfF][rRuU][oOnN][cC][eEtT][dDiI][uUoO][rRnN].(.-%b().-)\n",
[
'py']="\n%s-([dc][el][fa]%s-.-):",
[
'*']="\n[local ]*[SsFf][Uu][BbNn][^ .]* ([^(]*%b())",
}
local FIND_FUNC_REG_EXP_LEX_IDX = {
[
'cpp']='cpp',
[
'js']='js',
[
'vb']='vbs',
[
'vbscript']='vbs',
[
'css']='css',
[
'pascal']='pas',
[
'python']='py',
}
local FIND_FUNC_REG_EXP_EXT_IDX = {}
local function fill_func_reg_exp_idx()
local patterns = {
[
props['file.patterns.cpp']]='cpp',
[
props['file.patterns.wsh']]='js',
[
props['file.patterns.vb']]='vbs',
[
props['file.patterns.wscript']]='vbs',
[
'*.css']='css',
[
props['file.patterns.pascal']]='pas',
[
props['file.patterns.py']]='py',
}
for i,v in pairs(patterns) do
for
ext in (i..';'):gfind("%*%.([^;]+);") do
FIND_FUNC_REG_EXP_EXT_IDX[ext] = v
end
end
end
fill_func_reg_exp_idx()

function fill_list_func()
list_func:clear()
local findPattern = FIND_FUNC_REG_EXP [FIND_FUNC_REG_EXP_EXT_IDX [props["FileExt"]]]
if not findPattern then
findPattern = FIND_FUNC_REG_EXP [FIND_FUNC_REG_EXP_LEX_IDX [editor.LexerLanguage]]
if not findPattern then
findPattern = FIND_FUNC_REG_EXP ['*']
end
end
local
textAll = editor:GetText()
local startPos, endPos, findString
startPos = 1
while true do
startPos, endPos, findString = string.find(textAll, findPattern, startPos)
if startPos == nil then break end
findString = findString:gsub("[\r\n]", ""):gsub("%s+", " ")
local line_number = editor:LineFromPosition(startPos)
list_func:add_item(findString, line_number)
startPos = endPos + 1
end
end
[/more]
Автор: frs, Отправлено:16:21 16-09-2008
имхо на vb и vbs долны быть разные паттерны определения функций, см. мой вариант выше, хоть я туда не вписал Friend и т.п., всё равно он правильнее, чем использование паттерна vbs
Автор: LINKnv, Отправлено:11:21 17-09-2008
По умолчанию скобки (скажем - для 'for' или 'array') в SciTE располагаются неудобно, приходится подгонять вручную.

Например, как добиться того, чтобы после открытия скобки цикла '{' этот цикл принимал следующую форму? :


Код:
for (трёшь-мнёшь) {
...|
}


Т.е. меня интересует именно расположение открывающей и закрывающей скобок, а также отступ в три пробела с установкой в конце курсора внутри этих скобок.

По умолчанию SciTE отображает две идущие подряд скобки и располагает внутри них курсор. Если переместить вторую скобку на следующую строку то вид цикла получается не логичным, ищи потом где что открывает и закрывает (если циклов друг в друге множестово):


Код:
for (трёшь-мнёшь) {
...|}


При сдвигании закрывающей скобки ещё на строку ниже она (скобка) опять же получается с тремя пробелами спереди, которые совсем не нужны, т.е. их приходится удалять, перемещать курсор на строку выше и только после этого продолжать написание кода:


Код:
for (трёшь-мнёшь) {
...
...|}


ЗЫ: Я НЕ имею ввиду использование сокращений
Автор: BioInfo, Отправлено:13:22 17-09-2008
LINKnv
А для какого языка так надо?
Для с++ этим занимается smartbraces.lua
Что касается поведения по enter, то это в скрипте пока не сделано, нужно "Добаботать"

Автор: LINKnv, Отправлено:15:01 17-09-2008
BioInfo
Ну конкретно сейчас - для PHP.
Автор: vladvro, Отправлено:16:11 17-09-2008
Получил довольно забавный результат, сразу после запуска редактора переключился на другое окно,
это было окно медиа плеера:



боковая панель полностью функциональна, только слайдер не перемещается, но ширину панели меняет.


Автор: mozers, Отправлено:17:48 17-09-2008
SciTE 1.76 SVN .60 betaRu-Board Edition [Сборка 17.09.2008]
Полное описание пакета
Описание всех доработок ядра программы
Список всех изменений пакета

Новшества новой сборки вы увидите при первом запуске, поскольку вид у редактора с новым тулбаром и многофункциональной боковой панелью - совсем другой
Автор: frs, Отправлено:18:47 17-09-2008
Побаловался на досуге с vbHelper'ом пока оно не надоело
Сырые промежуточные результаты закинул на хттп://rapidshare.com/files/146043588/Helper.rar.html. Авось кому пригодится и он доведет вещь до ума.
Автор: BioInfo, Отправлено:21:32 17-09-2008
LINKnv
Замените тут
smartbraces.lua [строка 275] :
Код:
if ( char == '{' ) and
( editor.LexerLanguage == 'cpp' or editor.LexerLanguage == 'css' or editor.LexerLanguage == 'hypertext' )

И тут
smartbraces.lua [строка 319] :
Код:
if ( char == '}' ) and
( editor.LexerLanguage == 'cpp' or editor.LexerLanguage == 'css' or editor.LexerLanguage == 'hypertext' )


mozers
Столкнулся с тем что искал пункт "Преобразовать код для публикации в форуме" в меню "Выделенный текст", может ему там самое место?

vladvro
При нажатии на Релоад стартап скриптс вылетает, версию только что скачал.
Автор: mozers, Отправлено:23:52 17-09-2008
frs
Вот уж не думал чтобы все методы и свойства SciTE сделать методами и свойствами Helper-а... Но каждый автор мыслит по-своему...

BioInfo
Цитата:
искал пункт "Преобразовать код для публикации в форуме" в меню "Выделенный текст", может ему там самое место?
Может... Только код можно преобразовать и не выделяя его... Если откровенно, то пункт "Выделенный текст" мне вообще не нравится. Но лучшего варианта никто не придумал... (А точнее - лучший вариант будет только после выполнения Issue 5. Остальное - это жалкие попытки скрасить безобразие

Цитата:
При нажатии на Релоад стартап скриптс вылетает
подтверждаю. Это - из за gui.dll.
Надеюсь что вы, возлюбленные народом программеры, поправите это дело...
Автор: LINKnv, Отправлено:08:53 18-09-2008

Цитата:
Замените тут
...
И тут
...

Спасибо BioInfo.

. . . . // удалено, разобрался..
Автор: vladvro, Отправлено:11:29 18-09-2008
BioInfo

Цитата:
При нажатии на Релоад стартап скриптс вылетает, версию только что скачал.

да, все верно.
это происходит из-за того, что мы НЕ удалили старый объект боковой панели и пытаемся добавить новый.
в либе напроч отсутсвует функционал удаления панели, есть только set_panel, а обратной функции нет.
Автор: Raspberry_Jam, Отправлено:13:03 18-09-2008
Подскажите, где найти дополнение, которое подсвечивает парные тэги в html?
P.s. В последней бэта-версии Sidebar явно нужно перенести в меню Вид
Автор: vladvro, Отправлено:17:20 18-09-2008

Цитата:

Цитата:
При нажатии на Релоад стартап скриптс вылетает, версию только что скачал.

это происходит из-за того, что мы НЕ удалили старый объект боковой панели и пытаемся добавить новый.

был не прав, это происходит из-за подключения библиотеки gui
COMMON.lua [строка 10] :
Код:
require 'gui'

если отключить SideBar.lua, то все равно вылетает при перезагрузке, а убрать подключение библиотеки - все нормально.

Raspberry_Jam

Цитата:
Подскажите, где найти дополнение, которое подсвечивает парные тэги в html?

это делает скрипт highlighting_paired_tags.lua
Автор: Raspberry_Jam, Отправлено:22:01 18-09-2008
Спросил не то, что хотел Подскажите, где найти дополнение, которое с утилитой Tidy работает?
Автор: mozers, Отправлено:15:23 21-09-2008
Raspberry_Jam
Последний чуть поправленный вариант.
У себя подключил так:SciTEUser.properties [строка 135] : [more]
Код:
[HTML Tidy]
# ----------------------------------------------
#HTML Tidy
tidy=$(SciteDefaultHome)\tools\Tidy\Tidy.lua

command.submenu.parent.150.$(tagfiles)=1
command.submenu.name.150.$(tagfiles)=HTML Tidy

command.parent.150.$(tagfiles)=150
command.name.150.$(tagfiles)=HTML verify
command.mode.150.$(tagfiles)=subsystem:lua,savebefore
command.150.$(tagfiles)=dostring config='html' dofile(props['tidy'])

command.parent.151.$(tagfiles)=150
command.name.151.$(tagfiles)=HTML modify
command.mode.151.$(tagfiles)=subsystem:lua,savebefore
command.151.$(tagfiles)=dostring config='html' mode='modify' dofile(props['tidy'])

command.separator.152.$(tagfiles)=1
command.parent.152.$(tagfiles)=150
command.name.152.$(tagfiles)=XML verify
command.mode.152.$(tagfiles)=subsystem:lua,savebefore
command.152.$(tagfiles)=dostring config='xml' dofile (props["tidy"])

command.parent.153.$(tagfiles)=150
command.name.153.$(tagfiles)=XML modify
command.mode.153.$(tagfiles)=subsystem:lua,savebefore
command.153.$(tagfiles)=dostring config='xml' mode='modify' dofile (props["tidy"])

command.separator.154.$(tagfiles)=1
command.parent.154.$(tagfiles)=150
command.name.154.$(tagfiles)=HTML Word modify
command.mode.154.$(tagfiles)=subsystem:lua,savebefore
command.154.$(tagfiles)=dostring config='word' mode='modify' dofile (props["tidy"])

command.separator.4.$(tagfiles)=1
[/more]
Автор: mozers, Отправлено:22:03 21-09-2008
ALL
Задолбало меня при переходе на очередной букмарк искать курсор по всему экрану. То вверх улетит, то внизу окажется...
Решил реализовать давнее пожелание chupakabra и написал такой простенький скрипт.
Думаю что и вам понравится

Автор: redirector, Отправлено:12:40 22-09-2008
А можно сделать так чтоб по Ctrl+TAB вкладки переключались не по порядку слева на право, а по порядку просмотра.
Например я правил листинг одного кода, нажал Ctrl+TAB и переключился на закладку листинга который правил перед этим?
Автор: vladvro, Отправлено:13:31 22-09-2008
redirector

Цитата:
А можно сделать так чтоб по Ctrl+TAB вкладки переключались не по порядку слева на право, а по порядку просмотра.

да, можно, добавь в файл пользовательских настроек строчку:
buffers.zorder.switching=1
Автор: Tipulatoid, Отправлено:13:43 22-09-2008
Подскажите пожалуйста, как в Scite Версия 1.76.58Ru-Board настроить горячие клавиши (удобно бы было Shift+Tab), чтоб при нажатии автоматом вставлялся знак ";" в начало текущей строки. Повторное нажатие - удаляло бы его



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