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

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

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


Автор: vladvro, Отправлено:12:46 10-12-2008
ViSiToR

Цитата:
как добавляется поддержка конвертирования регистра букв (Ctrl + Shift + U) для не латинских символов? Я использую версию которая идёт вместе с AutoIt, там кириллица например просто игнорируется при попытке конвертировать.

В SciTE-Ru внесены изменеия в код. Предлагаю просто заменить бинарники в пакете для AutoIt на бинарники из Ru сборки.
Автор: ViSiToR, Отправлено:14:55 10-12-2008
vladvro 12:46 10-12-2008
Цитата:
В SciTE-Ru внесены изменеия в код. Предлагаю просто заменить бинарники в пакете для AutoIt на бинарники из Ru сборки.

Спасибо. Но я думал будет более лояльное решение, например правка какого то конфиг. файла...
Автор: mozers, Отправлено:17:35 10-12-2008
ViSiToR
Специально для тебя отыскал в мусорке древний-древний скрипт.
ChangeCase.lua : [more]
Код:
-- Переводит выделенный в редакторе текст в ВЕРХНИЙ (Ctrl+Shift+U), нижний регистр (Ctrl+U)
-- и инвертирует регистр символов (Ctrl+I)
-- (т.к. встроенная функция не понимает кириллицу)

-- Для подключения добавьте код скрипта в свой файл SciTEStartup.lua
-- и добавьте в свой файл .properties следующие строки:

-- command.name.11.*=Перевести в ВЕРХНИЙ регистр
-- command.11.*=ChangeCase U
-- command.mode.11.*=subsystem:lua,savebefore:no
-- command.shortcut.11.*=Ctrl+Shift+U

-- command.name.12.*=Перевести В нижний Регистр
-- command.12.*=ChangeCase L
-- command.mode.12.*=subsystem:lua,savebefore:no
-- command.shortcut.12.*=Ctrl+U

-- command.name.13.*=ИнВерТироВать регистр
-- command.13.*=ChangeCase I
-- command.mode.13.*=subsystem:lua,savebefore:no
-- command.shortcut.13.*=Ctrl+I

-------------------------------------------------------------------------

function ChangeCase(case)
local str = editor:GetSelText()
local res = ''
if str ~= nil then
for
i = 1, string.len(str) do
local
strS = string.sub(str,i,i)
local strB = string.byte(strS,1)
if case ~= 'U' and (strB > 191 and strB < 224) then --// [А-Я]
res = res..string.char(strB + 32)
elseif case ~= 'U' and (strB == 161 or strB == 178) then -- // Ў І
res = res..string.char(strB + 1)
elseif case ~= 'L' and (strB > 223 and strB <= 255) then --// [а-я]
res = res..string.char(strB - 32)
elseif case ~= 'L' and (strB == 162 or strB == 179) then -- // ў і
res = res..string.char(strB - 1)
elseif case ~= 'U' and (strB > 64 and strB < 91) then --// [A-Z]
res = res..string.lower(strS)
elseif case ~= 'L' and (strB > 96 and strB < 123) then --// [a-z]
res = res..string.upper(strS)
else
res = res..strS
end
end
end
editor:ReplaceSel(res)
end
[/more]
Автор: ViSiToR, Отправлено:04:51 11-12-2008
mozers 17:35 10-12-2008
Цитата:
Специально для тебя отыскал в мусорке древний-древний скрипт

Спасибо большое!

Есть два вопроса по поводу этого скрипта:

1) Возможно ли сделать чтобы эти строчки («Перевести в ВЕРХНИЙ регистр» и т.д.) добавлялись не в Tools меню, а в Edit?

2) Возможно ли сохранять выделение после конвертирования? на данный момент курсор ставится сразу после выделенной части текста.
Автор: mozers, Отправлено:09:18 11-12-2008
ViSiToR

Цитата:
1) Возможно ли сделать чтобы эти строчки («Перевести в ВЕРХНИЙ регистр» и т.д.) добавлялись не в Tools меню, а в Edit?
Нельзя. Можно сделать этот пункт невидимым в меню Tools (чтобы только по шорткату работал). Вот так.


Цитата:
2) Возможно ли сохранять выделение после конвертирования? на данный момент курсор ставится сразу после выделенной части текста.
Это - можно.
Код:
-- cохраняем начало и конец выделения
local sel_start = editor.SelectionStart
local sel_end = editor.SelectionEnd
-- что то делаем....
-- (в данном случае сюда можно поместить весь текст функции ChangeCase)
-- восстанавливаем выделение
editor:SetSel(sel_start, sel_end)

Автор: ViSiToR, Отправлено:09:50 11-12-2008
mozers 09:18 11-12-2008
Цитата:
Можно сделать этот пункт невидимым в меню Tools (чтобы только по шорткату работал). Вот так.

...

Это - можно.

Супер! Спасибо ещё раз.

Добавлено:
Хм, почему то для инвертирования оно (скрытие из Tools) работает, а для остальных режимов нет - Однако для латиницы конвертирует без проблем...
Автор: mozers, Отправлено:12:56 11-12-2008
ViSiToR

Цитата:
почему то для инвертирования оно (скрытие из Tools) работает, а для остальных режимов нет
"остальных режимов" - что это??? Поконкретнее, пожалуйста

Автор: ViSiToR, Отправлено:14:20 11-12-2008
mozers 12:56 11-12-2008
Цитата:
"остальных режимов" - что это?

Ну в смысле конвертирование в верхний, и нижний регистр - Т.е работает только Ctrl+I, а Ctrl+U и Ctrl+Shift+U не работают.
Автор: tilarids, Отправлено:19:24 11-12-2008

Цитата:
На сколько я знаю, так никто им и не занялся.
Желание занятся этим вопросом ток приветствуется.

Сделал, вот тут - http://tilarids.blogspot.com/2008/12/scite-incremental-autocompletion.html - можно посмотреть скринкаст и там же есть линки на патчи. К SciteRu их напрямую не применишь(я работал над официальным репозиторием), но я помогал одному из пользователей SciteRu путем ручного применения этих патчей. Может, он патчи и сделает.

Автор: vladvro, Отправлено:20:11 11-12-2008
tilarids
Отлично , спасибо!
Внес изменения в исходники SciTE-Ru ревизия 888.
Автор: AlphaCrow, Отправлено:23:51 11-12-2008
Недавно начал использовать редактор для Forth-а. Очень понравился.
Подскажите, как получить текущую директорию во вемя запуска редактора, и
установить её в качестве /HOME для сохранения .session файла?
Автор: mozers, Отправлено:16:43 12-12-2008
ViSiToR
Цитата:
Т.е работает только Ctrl+I, а Ctrl+U и Ctrl+Shift+U не работают.
Неправда Ваша. Все отлично работает:
SciTEUser.properties :
Код:
command.11.*=ChangeCase U
command.mode.11.*=subsystem:lua,savebefore:no

command.12.*=ChangeCase L
command.mode.12.*=subsystem:lua,savebefore:no

command.13.*=ChangeCase I
command.mode.13.*=subsystem:lua,savebefore:no

user.shortcuts=\
Ctrl+Shift+U|1111|\
Ctrl+U|1112|\
Ctrl+I|1113|


AlphaCrow
В SciTE-Ru есть параметр scite.userhome, позволяющий задать каталог для сохранения файлов настроек.
В оригинальном SciTE можно изобразить нечто подобное с помощью переменной окружения SCITE_HOME

Автор: AlphaCrow, Отправлено:19:53 12-12-2008

Цитата:
AlphaCrow
В SciTE-Ru есть параметр scite.userhome, позволяющий задать каталог для сохранения файлов настроек.
В оригинальном SciTE можно изобразить нечто подобное с помощью переменной окружения SCITE_HOME

Это понятно, но для установки. А чтобы получить статический путь началього каталога проекта?
Сейчас я прописываю в качестве scite.userhome - ".\" т.е. текущий каталог. Он будет соответствовать каталогу проекта, но до первого открытия файла из другой папки. Все, теперь .session файл будет записываться в последней открытой папке. А хотелось бы что то типа такого: scite.userhome=GetCurrentPath где, CurrentPath функция возвращающая полный абсолютный путь места в момент запуска Scite. И теперь все сохранения-востановления будут в одной рабочей папке. В документации такого не нашел.
Автор: ViSiToR, Отправлено:20:04 12-12-2008
mozers 16:43 12-12-2008
Цитата:
Все отлично работает:
SciTEUser.properties :

У меня нет этого файла, я пытался его создать с указанным содержимым, но SciTE видимо его не цепляет. Я помещал до этого в au3.properties (в этом файле всё что нужно для AutoIt'а, мне в принципе достаточно только для него и добавить), но и там "работает" именно как я и написал. Пробовал в начале для каждой команды добавить отдельно user.shortcuts, но сейчас попробовал как у тебя в примере (все вместе), тоже не работает, а так даже и инвертирование не работает ...

Добавлено:
Мда... оказывается это работает только при английской раскладке клавиатуры. Чтобы и для русской работало, нужно добавить так:


Код:
user.shortcuts=\
Ctrl+Shift+U|1111|\
Ctrl+Shift+Г|1111|\
Ctrl+U|1112|\
Ctrl+Г|1112|\
Ctrl+I|1113|\
Ctrl+Ш|1113|


Спасибо ещё раз, теперь вроде всё как нужно.
Автор: mozers, Отправлено:01:37 14-12-2008
AlphaCrow
Цитата:
А хотелось бы что то типа такого: scite.userhome=GetCurrentPath где, CurrentPath функция возвращающая полный абсолютный путь места в момент запуска Scite
SciTE можно запустить из разных каталогов, просто оказав полный путь к нему => следовательно твоя CurrentPath (и scite.userhome) будет указывать на разные пути => следовательно не только файл SciTE.session будет записываться в этот каталог, но и все остальные пользовательские настройки SciTE будет искать именно в этом каталоге. Так тебе придется в каждом рабочем каталоге иметь по файлу SciTEUser.properties (а в случае использования SciTE-Ru еще и по favorites.lst, cool.dll и прочих приблудах, которые сейчас лежат в одном месте).
Тебе это надо?
Я вообще не понимаю зачем тебе понадобилось записывать файл SciTE.session в текущем каталоге? Можно же записать любой набор файлов как сессию с произвольным именем и открывать ее из любого места.

ViSiToR
Цитата:
Мда... оказывается это работает только при английской раскладке клавиатуры.
В оригинальном - да. В SciTE-Ru этот баг исправлен.

Автор: AlphaCrow, Отправлено:08:47 15-12-2008
mozers

Цитата:
Я вообще не понимаю зачем тебе понадобилось записывать файл SciTE.session в текущем каталоге?


Другого пути автоматического сохранения, востановления списка открытых файлов я не знаю.
Автор: mozers, Отправлено:12:59 15-12-2008
AlphaCrow
Одновременно в SciTE могут быть открыты файлы из самых разных каталогов. В каком из них сохранять текущую сессию?
Скрипт SessionManager (из пакета SciTE-Ru) сохраняет все сессии в единственном каталоге (home - по умолчанию). Может сохранять и автоматически.

Цитата:

Для использования SessionManager для открытия и сохранения сессий необходимо снять комментарии с соответствующиих ключей в файле SciTEGlobal.properties:
    session.manager=1
После этого команды меню Файл - "Загрузить/Сохранить сессию..." будут открывать вместо стандартных диалоговые окна Session Manager, где эти процедуры можно выполнить с большим удобством и возможностями.

Для того, чтобы при закрытии SciTE автоматически возникал диалог SessionManager для сохранения текущей сессии:
    save.session.manager.on.quit=1

Для того, чтобы при закрытии SciTE автоматически (без открытия диалогового окна) создавался новый файл "currentfilename_num.session" с содержимым текущей сессии:
    save.session.on.quit.auto=1

Возможности:
------------
- Можно выбрать нужную сессию и до открытия редактора, запустив SessionManager.hta непосредственно.
- В диалоговых окнах можно использовать как мышь так и клавиатуру (Esc закрывает окно)
- Контекстное меню в диалоге открытия сессии (Открыть, Добавить к открытым вкладкам, Удалить)
- Можно к любой сессии добавить многострочные описания

Автор: AlphaCrow, Отправлено:15:42 15-12-2008
mozers
Y
Цитата:
Одновременно в SciTE могут быть открыты файлы из самых разных каталогов. В каком из них сохранять текущую сессию?


Немного поясню. Допустим я работаю в FAR-е и перемещаюсь из папки в папку, наконец нашел директорию нужного на данный момент проекта и считая что это главная папка набираю - SciTE. Так вот полный путь к этой папке и будет являтся тем местом, где я и хочу чтобы сохранялись все настройки в независимости от того, какие файлы были открыты до этого или будут открыты после этого.
Можно конечно вручную сохранить-загружать сессию в файле ..PROJ.SESSION но это не совсем удобно ( можно и забыть сохранить...).
Я так понял такой переменной с этим путем нет. Или я что то пропустил?

Автор: zzerf, Отправлено:06:21 16-12-2008
Что-то я запутался, пытаюсь поработать с исходниками на Питоне, они в win-кодировке, в начале каждого прописано # coding: utf-8, SciTE при открытии и последующем их редактировании сохраняет весь русский текст в какой-то кодировке (utf-8?), кроме того, все сообщения, которые он выводит в свое окно вместо русских букв содержат их коды.

Как сделать, чтобы редактируемые файлы оставались в win-кодировке и чтобы сообщения SciTE отображали русский язык. Сам редактор установил только вчера и еще не разобрался что и как. Хотя в FAQ об этом ни слова нет.
Автор: vladvro, Отправлено:15:46 16-12-2008
AlphaCrow

Цитата:
Я так понял такой переменной с этим путем нет. Или я что то пропустил?

Мне тоже не удалось найти такой, но ее можно заполучить, если например запускать скайт так:
SciTE.exe "-StartPath=%CD%"
тогда нужное значение будет записано в параметр StartPath и его можно будет использовать в файлах настроек как $(StartPath)

zzerf
Просьба уточнить о какой версии редактора и/или сборке идет речь.
Но, вероятно, должна помочь установка параметра:
utf8.check=0



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