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

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

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


Автор: veryom, Отправлено:18:48 25-09-2007
А есть ли подсветка для KiXtart? Если нет, то где почитать, как эту подсветку можно сделать?
Автор: mozers, Отправлено:20:11 25-09-2007
veryom
Раскомментируй строчки
Код:
#~ &Kix|kix||\

Код:
#~ import languages\kix
в SciTEGlobal.properties
или это - не то ?
Автор: HSolo, Отправлено:16:40 27-09-2007
Подредактировал немножко пару скриптов, которые работали не совсем правильно.
Возможно кому и пригодятся

exec.lua

Код:

-- Расчет выделенного текста как математического выражения
-- или открытие в браузере выделенного URL
-- Автор: HSolo, mozers™
-- http://forum.ru-board.com/topic.cgi?forum=5&topic=3215&start=1120#19
--------------------------------------------

local function FormulaDetect(str)
local PatternNum = "([\-\+\*\/%b()%s]*%d+[\.\,]*%d*[\)]*)"
local startPos, endPos, Num, Formula
startPos = 1
Formula = ''
while true do
startPos, endPos, Num = string.find(str, PatternNum, startPos) -- Находим числа, знаки, скобки (т.е. все что можно принять за часть формулы)
if startPos == nil then break end
startPos = endPos + 1
--~ print(Num)
Num = string.gsub (Num, '%s+', '') -- Убираем пробелы
Num = string.gsub (Num, '^([\(%d]+)', '+%1') -- Там, где перед числом нет знака, ставим "+" (т.е. пробелы и переводы строк заменяются на "+")
Num = string.gsub (Num, '^([\)]+)([%d]+)', '%1+%2') -- Добавляем знак "+" (при его отсутствии) между числом и скобкой
Formula = Formula..Num -- Склеиваем вновь преобразованную строку
end
Formula = string.gsub (Formula, '^[\+]', '') -- В самом начале получился лишний "+" - убиваем его
Formula = string.gsub(Formula,"[\,]+",'.') -- Не будем строги к символу - разделителю десятичных чисел
Formula = string.gsub(Formula,"([\+])([\+]+)",'%1') -- Удаляем сдвоенные знаки (++) = (+)
Formula = string.gsub(Formula,"([\-])([\+]+)",'%1') -- Удаляем сдвоенные знаки (-+) = (-)

Formula = string.gsub(Formula,"([\+\-\*\/])([\*\/]+)",'%1') -- Удаляем сдвоенные знаки перед * и / т.к. это явный косяк
Formula = string.gsub(Formula,"([\+\-\*\/])([\*\/]+)",'%1') -- Для успокоения совести проделаем дважды

Formula = string.gsub(Formula,"([%d\)]+)([\+\*\/\-])",'%1 %2 ') -- Разделяем группы пробелами

return Formula
end

local str = ''
if editor.Focus then
str = editor:GetSelText()
else
str = props['CurrentSelection']
end

if (str == '') then
str = editor:GetCurLine()
end

if (string.len(str) > 2) then
if string.find(str,'http://(.*)') then
local browser = ('explorer "' .. str .. '"')
os.run (browser, 0, false)
--~ os.execute (browser)
else
if string.find(str, "(math\.%w+)") then -- В случае сложных математических выражений форматирование оставляем на пользователя
str = string.gsub(str,"[=]",'')
else
str = FormulaDetect(str)
end

print('-> Расчет выражения: '..str)
local res = assert(loadstring('return '..str),str)()
editor:CharRight()
editor:LineEnd()
local sel_start = editor.SelectionStart + 1
local sel_end = sel_start + string.len(res)
editor:AddText('\n= '..res)
editor:SetSel(sel_start, sel_end)
print('>> Результат: '..res)
end
end

-- Тесты типа
--~ 1/2 56/4 - 56 (8-6)*4 4,5*(1+2) 66
--~ 3/6 6.4/2 6 (7-6)*4 45/4.1 66

--~ dmfdmk v15*6dmd.ks skm4.37/3d(k)gm/sk+d skdmg(6,7+6)skdmgk

--~ Колбаса = 24.5кг. * 120руб./кг
--~ Бензин(ABC) = (2500км. / (11,5л./100км.)) * 18.4руб./л + Канистра =100руб.
--~ Штукатурка = 22.4 м2 /80руб./100 м2

--~ http://forum.ru-board.com/topic.cgi?forum=2&topic=3339&start=160#lt


Добавлено:
и translit.lua

Код:

-- Модуль translit.lua предназначен для транслитерации английских букв в русские
-- Version: 1.02
-- Autor: HSolo
-- Подключение можно сделать похожим образом:
---------------------------------------------------------------------------------
--~ command.name.84.*=Translitiration
--~ command.84.*=dofile $(SciteDefaultHome)\tools\translit.lua
--~ command.mode.84.*=subsystem:lua,savebefore:no
--~ command.shortcut.84.*=Alt+Q
---------------------------------------------------

local translit = {
['a'] ="а", ['b'] ="б", ['v'] ="в", ['w'] ="в", ['g'] ="г", ['d'] ="д", ['e'] ="е", ['jo']="ё",
['yo']="ё", ['zh']="ж", ['z'] ="з", ['i'] ="и", ['j'] ="й", ['jj']="й", ['k'] ="к", ['l'] ="л",
['m'] ="м", ['n'] ="н", ['o'] ="о", ['p'] ="п", ['r'] ="р", ['s'] ="с", ['t'] ="т", ['u'] ="у",
['f'] ="ф", ['h'] ="х", ['x'] ="х", ['c'] ="ц", ['ch']="ч", ['sh']="ш", ['shh']="щ",['\'']="ь",
['y'] ="ы", ['\"']="ъ", ['~']="ъ", ['je']="э", ['ju']="ю", ['yu']="ю", ['ja']="я", ['ya']="я"}

local function RusUpper(Ch)
if string.byte(Ch) < 224 then return string.upper(Ch) end
return string.char(string.byte(Ch)-32)
end

local function TranslitIT(s)
if string.len(s) == 0 then return outstr end

local pos = 1
local outstr = ""
local res
local toFind

while (pos <= string.len(s)) do
local isCapital = true
if string.sub(s, pos, pos) == string.lower(string.sub(s, pos, pos)) then isCapital = false end

for i = 3, 1, -1 do
toFind = string.lower(string.sub(s, pos, pos + i - 1))
res = translit[toFind]
if res ~= nil then
if isCapital then res = RusUpper(res) end
outstr = outstr..res
pos = pos + string.len(toFind)
break
end
end
if res == nil then
outstr = outstr..toFind
pos = pos + 1
end
end
return outstr
end

local str = ''
if editor.Focus then
str = editor:GetSelText()
else
str = props['CurrentSelection']
end
if (str == '') then
str = editor:GetCurLine()
editor:LineDelete()
end

local result = TranslitIT(str)
editor:ReplaceSel(result)
print(result)

Автор: mozers, Отправлено:23:35 27-09-2007
HSolo
Конечно пригодятся
Завтра же залью на SVN, хотя ты и сам бы мог... Подключайся!

Добавлено:
да... еще... теги [ more ] [ /more ] не забываем ставить...
Автор: Dementei, Отправлено:10:29 28-09-2007
Есть ли сборки SciTE 1.74 Ru-Board Edition под Linux... или хотя бы тарбол...
Спасибо.
Автор: mozers, Отправлено:23:11 28-09-2007
Dementei
К сожалению, существующая сборка SciTE-Ru под Linux работать не будет.
Были тут попытки как то исправить ситуацию, но работа в этом направлении что то затормозилась...
Так что пока - только официальный SciTE. Ну еще, при желании, большинство настроек можно перенести...

ALL
Подскажите, пожалуйста, что это значит???
Цитата:
Ctrl+J - Find matching preprocessor conditional backwards, skipping nested ones

Ctrl+Shift+J - Select to matching preprocessor conditional backwards

Ctrl+K - Find matching preprocessor conditional, skipping nested ones

Ctrl+Shift+K - Select to matching preprocessor conditional

Автор: ALeXkRU, Отправлено:02:03 29-09-2007
mozers
так эта.. работа с директивами препроцессора. типа как со скобками.. в С++ работает нормально..
т.е. поиск директив:
Код:
Ctrl+J - Найти предыдущее вхождение директивы препроцессора, пропуская вложенные

Ctrl+Shift+J - Выделить вложение/содержимое до предыдущей директивы препроцессора

Ctrl+K - Найти следующее вхождение директивы препроцессора, пропуская вложенные

Ctrl+Shift+K - Выделить вложение/содержимое до следующей директивы препроцессора
типа того..
кстати, можно потренироваться\проверить: в .cpp-файле расставить:

Код:
#if
...
#elseif
...
#if
...
#endif
...
#endif


Добавлено:
кто-нибудь замечал, что SciTE не шибко хорошо ищет русские слова он полностью игнорирует галку "Учитывать регистр символов"... точнее - отсутствие галки... с англоязычными работает нормально.
Автор: mozers, Отправлено:09:49 29-09-2007
ALeXkRU
Спасибо! Твой ответ опубликовал в топике где сейчас кипит работа над новым переводом документации в которой все будет ясно и понятно
Кто может чего дополнить, поправить - подключайтесь!


Цитата:
русские слова он полностью игнорирует галку "Учитывать регистр символов"
Была такая бага. Работали над этим делом сурьезно, несколько раз переписывали код. Сейчас ни вышеназванная ни какие либо иные проблемы с русккими символами отсутствуют (вот только что проверил на всякий случай)


Добавлено:
Все вроде правильно, но сейчас проверил на файле .cxx - ни одна из комбинаций (Ctrl+J,.. Ctrl+K,..) не работает ни в оригинальном SciTE ни в SciTE-Ru ALeXkRU, а у тебя работает чтоли?

Автор: ALeXkRU, Отправлено:15:10 29-09-2007
mozers
я проверял только на .cpp - работало (у меня, само-собой, SciTE-Ru )
сейчас проверил на .схх - тоже работает...
при отсутствии директив препроцессора или нахождении вне их - пишет "Can't find"
это же имеются в виду скобковые директивы, т.е. (см. предыдущий пост) нужно чтобы курсор был между #if и #endif

Добавлено:

Цитата:
Сейчас ни вышеназванная ни какие либо иные проблемы с русккими символами отсутствуют (вот только что проверил на всякий случай)

а у меня таки присутствует
переводами русиков Макса когда занимаюсь, приходится постоянно проверять оба варианта слова/термина - и с большой и с маленькой буквы
Автор: mozers, Отправлено:10:57 30-09-2007
ALeXkRU
Да, действительно шорткаты (Ctrl+J,.. Ctrl+K,..) работают как надо. Ключевая фраза здесь -
Цитата:
нужно чтобы курсор был между #if и #endif


Что касается поиска русского текста без учета регистра, то по всей видимости - проблема в кодировке. Я говорю что все отлично работает и проверяю на тексте с кодировкой win1251, а ты очевидно, работаешь с кодировкой UTF-8 (c ней, действительно, поиск без учета регистра невозможен).
Так что на сегодня 2 выхода из данной ситуации:
1. Сохранить текст в win1251, отредактировать, затем сохранить в UTF-8
2. Описать проблему в Предложениях и Багах и ждать что кто нить придумает другой алгоритм.
(Если мы серьезно возьмемся за портирование сборки в Linux, то от существующего алгоритма, использующего Windows API все равно придется отказаться).
Автор: arcon13, Отправлено:10:23 02-10-2007
Объясните плз ламеру как в Lua сделать пошаговую проверку на подобии Step Into или Step Over

Добавлено:
Люди, помогитя бедному

Автор: mozers, Отправлено:16:38 02-10-2007
arcon13
Т.е. осуществить пошаговую отладку кода, написанного на Lua ? С остановкой после каждой строки и показом текущего значения использованных переменных? Да?
Если - ДА, то - никак. SciTE - редактор, а не отладчик.

Автор: Nagual, Отправлено:04:13 04-10-2007
очень приятная функция перехода по ветке реестра
однако она не работает, когда включен regedit
то есть приходится его закрывать, потом опять выделять ветку и только потом он переходит...
хотелось бы, чтобы при включенном regedit также был переход
пофиксить можно?
Автор: euheny, Отправлено:08:26 04-10-2007
У меня куча замечаний ...

Но что-то как я начинаю - разработчики перестают отвечать




Непонятки с кодировками - неразличается UTF-8 и UTF-16


Автор: mozers, Отправлено:13:53 04-10-2007
Nagual
Пофиксить можно, но с побочным эффектом:
При запуске скрипт вначале будет убивать все запущенные экземпляры regedit.exe. Так пойдет?

euheny
И где эта куча замечаний? На твой единственный пост в этом топике ответили.
Или ты имеешь в виду команду Нейла?
Кстати, оффициальный форум переехал на http://groups.google.com/group/scite-interest
по вопросу:
А с чего ты взял что SciTE поддерживает UTF-16 ???
С UTF-8 - проблем нет.
Автор: euheny, Отправлено:20:55 04-10-2007
mozers

Цитата:
И где эта куча замечаний?

не торопимся

Цитата:
Или ты имеешь в виду команду Нейла?

времени конечно мало - но интересно что за она

Цитата:
А с чего ты взял что SciTE поддерживает UTF-16 ???

из личного опыта - попробуй сам




Автор: Nagual, Отправлено:22:44 04-10-2007
mozers
пойдет, все же лучше, чем руками то
Автор: mozers, Отправлено:22:58 04-10-2007
euheny
Цитата:
но интересно что за она
ссылку я дал - можешь пообщаться...

Цитата:
Непонятки с кодировками - неразличается UTF-8 и UTF-16
Просто UTF-16 называется иначе "UCS-2 Big Endian" и "UCS-2 Little Endian" (Меню Файл-Кодировка).
Сначала обшибся я - думал что не поддерживается. Нет - все работает на 100%.

Nagual
Ладно, сделаю.
Автор: euheny, Отправлено:02:05 05-10-2007
Nagual
а как задействовать эту функцию ?
mozers
Короче надо чтобы в строке состояния отображалось UTF-16,
а при сохранении была возможность выбора кодировки.

Автор: Nagual, Отправлено:08:50 05-10-2007
euheny
выделяешь в коде ветку реестра, далее
Tools - Util - Открыть выделенную ветку реестра
немного неудобно добираться, зато сама функция очень удобна...



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