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

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

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


Автор: mozers, Отправлено:23:54 09-07-2006
ALeXkRU
Не... Тут скрипт - ни при чем. Надо в .properties написать:
Код:
autocomplete.*.ignorecase=1
calltip.*.ignorecase=1


Добавлено:

Цитата:
а в четырех остальных - или ничего не находили (прога на Delphi то бишь Pascal)
Угу В Паскале процедуры не по человечески построены. Фолдеры не с заголовка открываются, а с директивы begin. Жаль, думал что скрипт будет работать со всеми языками. Для Паскаля мой алгоритм вообще не работает
Тут и исправить не получится. А писать отдельный только для него чо то...

Цитата:
что с исходниками Менеджера? вроде как кто-то говорил что удалось их заполучить
mirk говорил...

Автор: mirk, Отправлено:00:28 10-07-2006
лентяи блин
Здесь
Автор: ALeXkRU, Отправлено:00:47 10-07-2006
mozers

Цитата:
Надо в .properties написать
у меня так и есть
Цитата:
Жаль, думал что скрипт будет работать со всеми языками

ну, сечас он не работает не только с паскалем проверял на vbs и js (из папки tools)

Добавлено:
mirk
опа! как же я прозевал-то мне ж даже дельфю не нужно ставить и вспоминать старое доброе
что нам от него нужно-то? перевести? или еще что-то?

Добавлено:
оказалось, что ignorecase в Global.properties не работает продублировал в UserCommands - стало действовать нормально
Автор: mozers, Отправлено:09:53 10-07-2006
ALeXkRU

Цитата:
проверял на vbs и js (из папки tools)
Да. Лишнего порой выводит Поправим...

Цитата:
что нам от него нужно-то? перевести? или еще что-то?
Первое, что мне бросилось в глаза - невозможность проги нормально работать в каталоге отличном от $(SciteDefaultHome).

Цитата:
ignorecase в Global.properties не работает
Сдается мне что этот параметр у тебя где то продублирован с неверным значением (возможно в .properties языка программирования).


Добавлено:
SciTE 1.70 .08Ru-Board Edition [Сборка 10.07.2006]
  • Новое ядро .08Ru - Доработанный вариант оригинальной версии 1.70 (исправления те же что и в версии .07Ru)
  • Добавлены и модернизированы скрипты:
    - автодополнение объектов их методами и свойствами
    - создание резервных копий сохраняемого после редактирования файла
    - вставка спецсимволов (©,®,§,±,…) из раскрывающегося списка
    - сортировка выделенных строк
    - вывод списка функций / процедур, имеющихся в коде
    - замена отступов в виде табуляторов на пробелы и наоборот
    - поиск выделенного в окне редактора (или консоли) текста
  • Откорректированы и дополнены: vbscript.api, jscript.api, SciTELua.api,...
  • Корректировка других настроек редактора

Автор: mirk, Отправлено:11:42 11-07-2006

Цитата:
опа! как же я прозевал-то [Image] мне ж даже дельфю не нужно ставить и вспоминать старое доброе [Image]
что нам от него нужно-то? перевести? или еще что-то?

Угу, перевести...
Автор: mozers, Отправлено:13:34 11-07-2006
Все улучшаем и улучшаем
SciTELua.api
SortText.lua
(в сборке - старые варианты)
Автор: mirk, Отправлено:04:01 12-07-2006
Господа, всем советую заглянуть вот на эту страницу, и глянуть screecast`ы....
Я обалдел.... ))
Жалкот раффика на нуле.. кто скачает и установит эту красоту отпишите плиз в форум

Вроде mozers бился над тем что бы сделать многострочные всплывающие подсказки.. они там тоже есть
Автор: zvyagaaa, Отправлено:14:20 12-07-2006
Господа, я вас умоляю, ну добейте для паскаля файло! а то как сборку обновляю - приходится файл паскалевский туда-сюда тыркать... правда, мало чем он от стандартного отличается, но хотя бы символы комментирования добавьте и если возможно, то api файл если кто делал - выложьте пожалуйста, а разработчики сборки не игнорируйте этот очень популярный в бывшем СССР язык.
Автор: mozers, Отправлено:16:02 12-07-2006
zvyagaaa
Не надо никого "умолять". Сделай сам путную раскраску, api, abbrev для своего Паскаля - и выкладывай сюда. Удачно получится - добавим в сборку. Неудачно - кто нить поможет поправить.
Лично я в Паскале не пишу. В чем пишу (JS, VBS, BAS, LUA) - то и модернизирую потихоньку...
Вот новый скрипт выкладываю:
Код:
-- Вывод списка функций / процедур, имеющихся в коде
-- mozers™ icq#256106175 (выполняя пожелание ALeXkRU при активном тестировании mimir)
-- Использованы идеи: Grisper и gansA
-----------------------------------------------------------------------

-- паттерны для разных языков программирования (корректируйте, дополняйте)
-- шлите ваши варианты на <mozers@mail.ru>
local findRegExp = {
--~     ['cxx']="\n[^,.<>=\n]-([^%s,.<>=\n]+[(][^.<>=\n)] -[)])%s-%b{}",
    ['cxx']="([^.,<>=\n]-[ :][^.,<>=\n%s]+[(][^.<>=)]-[)])[%s\/}]-%b{}",
     ['h']="([^.,<>=\n]-[ :][^.,<>=\n%s]+[(][^.<>=)]-[)])[%s\/}]-%b{}",
--~     ['pas']="\nprocedure ([^(]*%b()).-\n%bb;"
    ['pas']="\nprocedure ([^(;]-)[;(].-\n%bb;"
}
local findPattern = findRegExp [props["FileExt"]]
if findPattern == nil then
-- универсальный паттерн для всех остальных языков программирования
    findPattern = "\n[SsFf][Uu][BbNn][^ ]* ([^(]*%b())"
end

-- дальше - банальный поиск заданнго паттерна по всему тексту
output:ClearAll()
editor:MarkerDeleteAll(1)
local textAll = editor:GetText()
local startPos, endPos, findString
local count = 0
startPos = 1
print("> Список функций / процедур:")
while true do
    startPos, endPos, findString = string.find(textAll, findPattern, startPos)
    if startPos == nil then break end
    -- убираем переводы строк и лишние пробелы
    findString = string.gsub (findString, "\r\n", "")
    findString = string.gsub (findString, "%s+", " ")
    local style = editor.StyleAt[startPos]
    -- если функция не закомментирована, то выводим ее в список
    if not (style == 1 or style == 2) then
        local line = editor:LineFromPosition(startPos)
        editor:MarkerAdd(line,1)
        print(props['FileNameExt']..':'..(line+1)..':\t& #39;..findString)
    end
    count = count + 1
    startPos = endPos + 1
end
if count > 0 then
    trace("> Найдено: "..count.." функций / процедур\nДвойной щелчок на строке с результатом установит курсор на оригинальную строку")
else
    trace("> Функций / процедур не найдено!")
end

Вот теперь он действительно ВСЕ языки понимает. Ну если не поймет где - то всех делов - паттерн добавить.
Была мысль сделать чтобы он результат в раскрывающийся список выводил...
Подумал трезво - "А оно надо???". Прикольнее? - ДА, удобнее? - НЕТ.
Автор: mimir, Отправлено:19:14 12-07-2006
mozers
Классная идея. Я просто не знаю RegExp, я бы сам написал.
В С определение процедуры может быть таким.

тип [ПространствоИмен::]ИмяПроцедуры ([Тип[имя параметра]]);


Паттерн должен быть примерно таким
первое слово должно искаться в списке типов при этом перед не должно быть скобок,
далее идут символы[a-z,A-Z,':',' ','<','>'],
далее должна быть либо '([пробелы])' либо '([пробелы]Тип'
напр
int f(int d); - функция
int f(); - функция
int f(2); - переменная типа int и присваивание ей значения 2
int f(int(2)); - тоже что и int f(2); но это уже извращение.
кол-во стандартных типов достаточно мало, а дополнительные каждый использует сам.

PS.
mozers
Ты получил пое письмо с аттачем или нет, а то я ща еще штук дцать накидаю.
newmail чтото последнее время сильно борохлит.



Автор: mozers, Отправлено:01:21 13-07-2006
mimir
Цитата:
В С определение процедуры может быть таким
Мой регсеп для схх работает почти так как ты описал. Что то не нравится?
Я проверял на коде Скайта (других С исходников у меня нет) - находит все процедуры без проблем.

P.S. Код твой у меня не компилится - Выдает ошибки. Я сразу же отписал тебе об этом. См. в ПМ
Абыдна (в нем бездна замечательных идей и решений)
Может кто поможет???
Автор: ALeXkRU, Отправлено:02:32 13-07-2006
mozers
01:21 13-07-2006
Цитата:
Я проверял на коде

тоже проверил правда, в паскале: скрипт таки практически ничего не находит
Надо совсем переписывать паттерн
там используется стандартный регесп? если да, после менеджера проектов составлю-таки (надеюсь)
Автор: mozers, Отправлено:09:52 13-07-2006
ALeXkRU
Я тоже пару файлов на Паскале нашел у себя, по ним и писал регсеп. В них он находит все процедуры. Тот регсеп, что закомментирован выше, так же работает (выводит не одно имя процедуры, а и список ее параметров). Он ошибляется на процедурах заданных одним именем (без последующих круглых скобок).

Цитата:
там используется стандартный регесп?

Неа. Я уже привык что все RegExp похожи по принципу действия но каждый разрабочик старается выпендрится по своему. Вот и в LUA так же.
Описание (на русском) я брал отсюда.
Вкратце, про использованное у меня:

Код:
\nprocedure ([^(;]-)[;(].-\n%bb;

\n - перевод строки
procedure - текст
( - начало текста для вырезания
[^(;]- любые символы не равные перечисленным в любом кол-ве (мин. кол-во - "жадный")
) - конец текста для вырезания
[;(]- любые символы из перечисленных в любом кол-ве (мин. кол-во - "жадный")
.- - любые символы в любом кол-ве (мин. кол-во - "жадный")
\n - перевод строки
%bb; - "сбалансированное" выражение (т.е. начинающееся на b и кончающееся ;

Автор: Grisper, Отправлено:10:53 13-07-2006
mirk, screencast'ы действительно впечатляют.
особенно mlines.lua порадовал.
только как их подключить я не понял нифига
Автор: mimir, Отправлено:11:30 13-07-2006

Цитата:
Мой регсеп для схх работает почти так как ты описал. Что то не нравится?

Функция может только объявляться соот. нодо проверять в конце и ';', т.е. ; или {}, а так действительно впечатляет.
Удачи.
Автор: mozers, Отправлено:11:49 13-07-2006
Grisper
Я так понял что исходники своего "чуда" этот товарищ положил сюда в неупакованном виде т.е. пофайлово (это ж надо - додумался!).
А кое чего можно имхо и без перекомпиляции кода на LUA сляпать...
Автор: Grisper, Отправлено:12:00 13-07-2006
mozers, я их скачал и посмотрел. правда бегло достаточно...
пример как подключить тот же mlines.lua можешь привести?
Автор: mozers, Отправлено:12:10 13-07-2006
Не будет он работать
Цитата:
API (see functions for descriptions):
- MLines.add
- MLines.add_multiple
- MLines.clear
- MLines.update
Т.е. надо перекомпилировать Скайт чтобы он эти ф-ции понимал.
Я просто думаю может свой скрипт сочинить чтобы он делал то же самое, но без привлечения дополнительных API-шных ресурсов?
Но смотрю уже который раз на этот screencast и врубится не могу че он там делает вообще...

Добавлено:
Очередное маленькое lua-открытие (простите те, кто об этом знал и без меня):
.properties
Код:
command.name.49.*=Test
command.49.*=dostring val="Love LUA" dofile(props["SciteDefaultHome"].."\\tools\\test.lua")
command.mode.49.*=subsystem:lua,savebefore:no

test.lua
Код:
print(val)



Автор: albertabd, Отправлено:19:35 17-07-2006
А есть какой нить плагин перекодировать koi8<->win<->mac<->iso<->utf-8<->translit?

Автор: mozers, Отправлено:09:07 18-07-2006
albertabd
xcode



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