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

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

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


Автор: neo_max, Отправлено:11:12 27-08-2009
vladvro
К сожалению так и вышло как Вы сказали, удалось лишь реализовать открытие файла из моего Експлорера, но никак не удалось реализовать функцию сохранения и возможности оставить открытый файл при следующем запуске редактора (остаются лишь файлы из реальной ФС).

Думаю придется реализовать функции-ивенты OnBeforOpen. Реально ли в будущем включить эти ивенты в официальный релиз, думаю что очень полезная вещь.

Кстати по поводу открытия файла, дело в том что я новичок в SciTE, по правильному пути я иду:
    
Код:
local warning_couldnotopenfile_disable = props['warning.couldnotopenfile.disable']
    props['warning.couldnotopenfile.disable'] = 1
    scite.Open("DB:\\" .. filename) -- думаю здесь нужно реализовать свою процедуру открытия буфера
    props['warning.couldnotopenfile.disable'] = warning_couldnotopenfile_disable
    scite.SendEditor(SCI_CANCEL)
    scite.SendEditor(SCI_SETUNDOCOLLECTION, false)
file_id = GetFileIdByName(filename)
    vm = db:prepare('select body from myfiles where id=?') -- ищем файл в БД
    vm:bind_values(file_id)
    if vm:step() == sqlite3.ROW then
        scite.SendEditor(SCI_ADDTEXT, vm:get_value(0)) -- Подсовываем
    end
    vm:finalize()
    scite.SendEditor(SCI_SETUNDOCOLLECTION, true)
    scite.SendEditor(SCI_SETSAVEPOINT);
    scite.SendEditor(SCI_GOTOPOS, 0);


Дело в том что редактор, после открытия таким способом корректирует имя файла и подсовывает мне место текущего расположения SciTE, можно ли его задать через props чтоб в дальнейшем ловить это имя в Ивентах перед сохранением

Добавлено:
Ура! Получилось, после небольших изменений и дополнений в исходники все таки удалось добиться желаемого. Пришлось добавить событие OnBeforeOpen и немного подкорректировать класс FilePath чтоб "насильственно" не приводил указанный путь к файлу к абсолютному пути в локальной ФС, так как я использую в именах "своих" файлов свою схему. (Прим.: MyDB:/modules/myscript.lua). Думаю в дальнейшем это позволит написать к примеру екстеншн для работы через ftp в режиме онлайн
Автор: Oaklet, Отправлено:19:08 27-08-2009
Подскажите пожалуйста, возможно ли разделить подсветку синтаксиса скажем для JavaScript и C++? Ведь, как я понял, они привязаны к одному лексеру "cpp", из-за чего и подсветка у них одинаковая...
Автор: Psorokin, Отправлено:22:42 27-08-2009
Создатели SciTE-RU.
Добавьте такую возможность Issue 169

Автор: mozers, Отправлено:20:19 30-08-2009
neo_max
Весьма интересные эксперименты...

Oaklet
Разве что написать отдельный лексер для JS, скопировав код из лексера cpp...
Только, зачем?

ALL
Мудрые мужики, вы заглядывайте хоть иногда в Issue то!
Там уже столько весьма интересных предложений появилось...
Без ВАС - труба - все так и останется лишь в мечтах...
Автор: TymurGubayev, Отправлено:22:01 30-08-2009
neo_max, vladvro
теоретически можно и без правки исходников сделать все что надо, средствами чистого Луа:

берем scite.Perform или scite.Open
и делаем так:

Код:
local old_Open = scite.Open
function scite.Open (filename)
if SomeFileNameCheck( filename ) then
return my_strange_fileopen_function ( filename )
else
return old_Open( filename )
end -- if
end --func


осталось вставить в какой-нибудь common.lua, и всё, что открывается из Луа, будет открываться правильно
Автор: vladvro, Отправлено:22:55 30-08-2009
neo_max

Цитата:
Думаю придется реализовать функции-ивенты OnBeforOpen. Реально ли в будущем включить эти ивенты в официальный релиз, думаю что очень полезная вещь.

если говорить про оригинальную версию редактора, то нет, а в ру-сборку без проблем, присылай код, я добавлю, а если есть желание и время на доработку редактора, то присоединяйся к нашему проекту SciTE-Ru.

TymurGubayev
идея конечно интересная, только вот как быть с теми файлами, что открываются не из Луа, таже сессия?
Автор: TymurGubayev, Отправлено:07:48 31-08-2009
vladvro
переделать, чтобы открывалась из Луа
мой вариант был скорее workaround, это да. Хотя опять же всё зависит от системы событий -- можно ли назначить свой обработчик на OnOpen и т.п., так что OnBeforeOpen -- нужная вещь.
Автор: neo_max, Отправлено:20:56 02-09-2009
vladvro

Цитата:
если есть желание и время на доработку редактора, то присоединяйся к нашему проекту SciTE-Ru.


С удовольствием, редактор мне понравился, вот только с кодом нужно поближе познакомиться...

Что с меня требуется для участия в проекте?

Мой никнейм в гугле neo4max.

Автор: mozers, Отправлено:10:28 03-09-2009
neo_max
Цитата:
Что с меня требуется для участия в проекте?
Внимательно прочитать эту инструкцию и эту - в них все описано.
Перечень нерешенных проблем - тут. Можно внести свое предложение и выполнить его. Можно (и нужно) выполнить понравившееся чужое...



Автор: neo_max, Отправлено:10:49 03-09-2009
mozers
Все предельно ясно, большое спасибо.
Автор: chitatel2, Отправлено:21:39 14-09-2009
Подскажите, как настроить редактор SciTe для компиляции файлов, отобранных в раздел favorites?
Автор: mozers, Отправлено:23:07 15-09-2009
chitatel2
Каких файлов? Чем компилировать собрался? Что за "раздел favorites"?
И Вы верите что на такой вопрос кто то ответит???

Автор: chitatel2, Отправлено:12:17 16-09-2009
Вопрос по использованию SciTe для компиляции программ, написанных на том или ином языке программирования.
При нажатии кнопки SideBar слева открывается окно, разделенное на верхнюю и нижнюю части.
В верхней части есть 3 закладки. При нажатии на закладку FileMan, в верхней части
появляется список файлов в выбранной папке. Нижняя часть SideBar
имеет название Favorites. Из списка верхних файлов можно отобрать некоторое число файлов и переместить их в нижнюю часть Favorites.
Вопрос такой: нет ли в Scite такой переменной окружения или внутренней переменной, вроде FileName, FilePath, FileExt и т.п., которой можно было бы присвоить значение, определяющие файлы в отобранном списке Favorites?
Может быть есть несложный способ создания такой переменной?


Автор: mozers, Отправлено:22:27 16-09-2009
chitatel2
На lua такая переменная создается элементарно:
Код:
props['my_value']=[[filename1.ext
filename2.ext
filename3.ext]]

После запуска этого скрипта можно убедится что такая переменная появилась:
Код:
command.name.212.*=Показать значение моей переменной
command.212.*=CMD /c @echo $(my_value)

В случае с Favorites можно дописать скриптик, чтобы он загонял список файлов какую нить такую переменную... Т.е. получить переменную, содержащую список файлов из Favorites - элементарно... Но вот только что с этим списком делать потом?
Ведь ты же пишешь что
Цитата:
для компиляции программ, написанных на том или ином языке программирования
а языков этих - немеряно и компилируются они совершенно по разному.
Я еще понимаю если, допустим, передать этот список какому нить архиватору... Но, зачем?...
Автор: chitatel2, Отправлено:13:35 17-09-2009
В данном случае интересует программирование на языках Фортран, С++ и Паскаль.

Например, для использования фортрановского компилятора g95,
в файле fortran.properties можно было бы задать такие строки:
...
fc95=g95 $(favorites_name) -c
...
command.compile.*.f95= $(fc95)

где favorites_name - список файлов из Favorites.

Применение Favorites позволяет, как мне кажется,
быстро получать ехе-файлы (или объектные файлы) из различного набора исходников,
которые находятся в общей папке. Достаточно мышкой выбрать нужные файлы,
одним кликом переместить их в Favorites и нажать на выполнение компиляции.
Автор: Real Root, Отправлено:17:33 17-09-2009
Господа, добавил в скрипт translit.lua возможность обратной транслитерации. Путем добавления сопоставления символов в указанный скрипт:

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

Больше ничего не менял.
Проверил - все работает. Отдал в нужный отдел (там им очень нужен перевод из кириллицы в латиницу). Ну и сам решил отправить анекдот девушке по смс через сайт компании. Можно отправлять только латиницу. Решил воспользоваться Скитом. Вот что из этого вышло:
Оригинал: За окном смеpкалось. Она лежала на спине совеpшенно голая. Ее бледная гpудь в последних лучах вечеpней заpи окpасилась в pозовый цвет. Пpиподнятые, чуть полусогнутые ноги, как бы обидевшись дpуг на дpуга, pаздвинулись и смотpели в pазные стоpоны. Капитан Сидоpов, запахнув халат, стоял в глубоком pаздумье. Ему было над чем пpизадуматься:
каким обpазом накоpмить семью этой замоpоженной куpицей?

А вот что вышло после транслитерации:
Za oknom smeпkalos. Ona lejala na spine soveпshenno golaya. Ee blednaya gпud v poslednih luchah vecheпney zaпi okпasilas v пozoviy cvet. Pпipodnyatie, chut polusognutie nogi, kak bi obidevshis dпug na dпuga, пazdvinulis i smotпeli v пaznie stoпoni. Kapitan Sidoпov, zapahnuv halat, stoyal v glubokom пazdume. Emu bilo nad chem pпizadumatsya:
kakim obпazom nakoпmit semyu etoy zamoпojennoy kuпicey?

Что самое интересное, вот этот текст транслитируется без проблем:
Модуль translit.lua предназначен для транслитерации английских букв в русские
Modul транслит.луа prednaznachen dlya transliteracii angliyskih bukv v russkie

ГДЕ СОБАКА ПОРЫТА?
Автор: mozers, Отправлено:19:52 17-09-2009
chitatel2
Цитата:
fc95=g95 $(favorites_name) -c
Что тут должно быть вместо $(favorites_name)?
Неужели Фортран принимает в качестве параметра длиннющую строку с перечислением компилируемых файлов???
Все файлы - с путями? А разделитель между ними какой? А как записываются длинные имена?
Имхо ты че то напутал. Наверное тут в качестве параметра надо указывать имя файла содержащего список файлов для компиляции.
Что касается других языков, то идея видится еще более необдуманной...

Real Root
Если бы один символ везде менялся на 1 символ, то твоя подмена бы прокатила. Тут некоторые буквы заменяются на 1, другие - на 2 символа. Точнее - наоборот.
Стоит ли Full Member напоминать что дублировать посты в разных топиках некрасиво?

Автор: Real Root, Отправлено:22:44 17-09-2009
mozers
Простите за дублирование данного вопроса в двух топиках. Просто сначала запостил в тестировании, и только потом заметил, что последний ответ там за июль месяц. Потом пришел сюда. Так что уж извините, стараюсь вести себя культурно.


Цитата:
Если бы один символ везде менялся на 1 символ, то твоя подмена бы прокатила. Тут некоторые буквы заменяются на 1, другие - на 2 символа. Точнее - наоборот.

Вы в этом уверенны? Или просто сдлали предположение совершенно не вникая почему так?

Просто я этот вариант тоже проверял, пробовал ограничить длину замены одним символом:

В оригинале так: for i = 3, 1, -1 do (т.е. обрабатываются даже не 2, а 3 символа)
Сделал так: for i = 1, 1, -1 do
Проблема не исчезла

Убедительная просьба, если разбираетесь хорошо в скриптах LUA то гляньте код, а не говорите от балды. Код там не большой, думаю, профессионалу корень проблемы понять будет не трудно. Скрипт очень нужный, иначе бы не обращался за помощью. Сам я сисадмин, и программирование знаю лишь на уровне скриптов на VBScript
Автор: chitatel2, Отправлено:23:52 17-09-2009
Fortran действительно принимает длинную строку с компилируемыми файлами. Разделитель - пробел. Имена файлов вместе с путями должны быть в кавычках, если внутри пути есть пробелы. То есть в общем случае вместо $(favorites_name) должна быть подставлена строка с закавыченными файлами из Favorites.
Например, если задать
g95 -c $(favorites_name),
то команда на компиляцию может, например, выглядеть так
g95 -c "c:\dir 1\prog1.f95" "c:\dir 2\prog2.f95" "d:\dir 3\prog3.f95"

Если компилятор запускается из папки, где находятся все компилируемые
файлы, то пути к файлам указывать не надо. Результат компиляции создается в той же папке, где расположены исходники. Команда на компиляцию будет выглядеть
g95 -c prog1.f95 prog2.f95 prog3.f95


Автор: ALeXkRU, Отправлено:23:58 17-09-2009
Real Root

Цитата:
ГДЕ

так, может, просто символ в тексте перепутан? вместо 'эр' используется латинская 'пэ' ?
на других текстах проверялось?




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