Ru-Board.club
← Вернуться в раздел «Программы»

» SciTE - Open Source Text Editor for Windows & Linux

Автор: mozers
Дата сообщения: 15.04.2007 23:24
dB6
Оно, конечно, и так можно... Но перетирать при открытии еще не отредактированный файл, который, может, просто поглядеть захотелось, как то...

ALL
Вот зачем я вновь и вновь усовершенствую этот SessionManager ? (Только что выложил новый) Есть же стандартные диалоги открытия и сохранения сессии ??? Но достаточно один раз попробовать - сразу ощутите разницу
Автор: Rudich
Дата сообщения: 17.04.2007 05:53
При загрузке SciTE 1.73 Ru-Board Edition ругается антивирус (Касперский 6) на файл jscript.abbrev - троянскую программу "Trojan-Downloader.js.gen".
Там действительно троян?!!
Автор: mozers
Дата сообщения: 17.04.2007 10:02
Rudich
Цитата:
Там действительно троян?!!

ДА. Большой и страшный
В SessionManager DrWeb тоже вирус находит
А если серьезно, то у тя Блокнот есть? Можно же открыть в нем подоздительный файл и посмотреть... Если что то в содержимом этих файлов окажется выше твоего понимания, то просто удали их (или почитай документацию).
А вообще... создатели антивирусов нашли простой и дешевый способ дурить неграмотную общественность...
Автор: Max_kraev
Дата сообщения: 17.04.2007 11:41
русская сборка 1.73, при открытии файла по сети виснет, как с этим бороться?
Автор: Ivan_D
Дата сообщения: 17.04.2007 12:31
Max_kraev, такой глюк действительно есть. Я пока вернулся на версию 1.72.31Ru
Автор: vladvro
Дата сообщения: 17.04.2007 12:44
Max_kraev, Ivan_D
Цитата:
русская сборка 1.73, при открытии файла по сети виснет, как с этим бороться?

читаем здесь
Автор: VVP91
Дата сообщения: 18.04.2007 13:17
Вопрос такой - есть ли возможность более тонкой настройки свертки (фолдинга)?
В частности, использую следующий стиль программирования:
if(...) {
...
}
Сейчас фолдинг в редакторе оставляет только строчку с if.
Хотелось бы настроить редактор, чтобы скрывалось только внутреннее содержимое между { и }, но сами скобки отображались.
Автор: mozers
Дата сообщения: 18.04.2007 16:23
VVP91
Поздравляю с первым постом!
По существу: Так настойками не сделать, надо код корректировать.
Если кому то из пишущих на С++ твоя идея покажется интересной - сделают...

ALL
Переделал скрипт для открытия и поиска выделенных слов в любом html файле
(заточен под открытие html файла справки).
Теперь для быстрого перемещения по выделенным вхождениям не надо встраивать скрипт в сам HTML файл - он внедряется сам. Ну и переход стал более наглядным
[more]
HTML_help.js
Код: [no]// HTML Help Context[/no]
[no]// Version: 1.5[/no]
[no]// Autor: mozers™[/no]
[no]// -----------------------------------------------------------------------[/no]
[no]// Вызывает справку (любой HTML файл) в окне без излишеств[/no]
[no]// Подсвечивает все вхождения выделенного в редакторе текста[/no]
[no]// Добавляет быстрый переход по всем вхождениям с помощью клавиши Enter[/no]

[no]// Подключение:[/no]
[no]// добавьте в свой файл .properties следующие строки:[/no]
[no]// SciTE.files=*.properties;*.lua;*.iface[/no]
[no]// command.help.$(SciTE.files)=wscript "$(SciteDefaultHome)\tools\HTML_help.js" "$(SciteDefaultHome)\doc\SciTEDoc.html" "$(CurrentSelection)"[/no]
[no]// command.help.subsystem.$(SciTE.files)=2[/no]
[no]//[/no]
[no]// command.help.*.lua="$(SciteDefaultHome)\tools\HTML_help.js" "$(SciteDefaultHome)\help\lua5.htm" "$(CurrentSelection)"[/no]
[no]// command.help.subsystem.*.lua=2[/no]
[no]// -----------------------------------------------------------------------[/no]

var Args = WScript.Arguments;
var help_path = Args(0);
var text_find = Args(1);

[no]// Открываем окно Internet Explorer и загружаем в него html файл справки[/no]
var objIE = new ActiveXObject([no]'InternetExplorer.Application'[/no]);
with (objIE) {
MenuBar = 0;
ToolBar = 0;
StatusBar = 0;
Navigate (help_path);
Visible = 1;
}
while (objIE.Busy) {};


if (text_find) {
[no]// Ищем текст в теле документа и выделяем его[/no]
var TextRange=objIE.document.body.createTextRange();
for(var i=0;TextRange.findText(text_find);i++){
TextRange.execCommand([no]'BackColor'[/no],[no]''[/no],[no]'yellow'[/no]);
TextRange.execCommand([no]'CreateBookmark'[/no],[no]''[/no],[no]'bmk'[/no]+i);
TextRange.collapse(false);
}
var WSHShell = WScript.CreateObject([no]'WScript.Shell'[/no]);
if (i==0){
WSHShell.Popup([no]'Текст "'[/no] + Args(1) + [no]'" не найден!'[/no], 2, [no]'Документация SciTE'[/no], 64);
} else {
WSHShell.Popup([no]'Найдено '[/no]+ i +[no]' вхождений текста "'[/no] + Args(1) + [no]'"\nИспользуйте ENTER для быстрого перемещения!'[/no], 2, [no]'Документация SciTE'[/no], 64);
[no]// Позиционируем справку на первое найденное вхождение[/no]
objIE.document.location.href=objIE.document.location.href+[no]'#bmk0'[/no];

[no]// Внедряем в тело документа скрипт для быстрого перехода по найденным вхождениям[/no]
var oScript = objIE.document.createElement([no]"SCRIPT"[/no]);
oScript.type = [no]"text/javascript"[/no];
oScript.text = [no]'TextRange=document.body.createTextRange(); document.onkeypress=function (){if (event.keyCode==13) {if (TextRange.findText(\"'[/no]+text_find+[no]'\")){TextRange.select(); TextRange.collapse(false);}}}'[/no];
objIE.document.getElementsByTagName([no]"BODY"[/no])[0].appendChild(oScript);
}
}
Автор: dawer
Дата сообщения: 20.04.2007 10:14
использую версию 1.72 .31Ru

вопрос: по работе часто приходиться редактировать файлы с атрибутом read only, выглядит сейчас это так: ищется нужный файл с него снимается флаг read only редактируется, сохраняется, опять устанавливается флаг read only, можно ли как-нибудь сделать так, чтобы scite сам это делал, то-есть открыл файл read only я в него в нёс изменения нажал сохранить а он записал их в файл и поставил бы ему атрибут read only, если он до этого стоял на этом файле, если да то как это сделать?
Автор: vladvro
Дата сообщения: 20.04.2007 11:51
dawer
Цитата:
..., если да то как это сделать?

самое простое это перейти на сборку 1.73 .37
Автор: mozers
Дата сообщения: 24.04.2007 20:26
Похоже, что нашел багу SciTE:
Если в .properties написано, к примеру, так:
Код: calltip.lua.parameters.start=_([
Автор: vladvro
Дата сообщения: 25.04.2007 09:09
mozers
Цитата:
Похоже, что нашел багу SciTE:

и точно нашел... а я удивлялся, почему у меня в PHP исчезла подсказка...
и решение с перестановкой пробела работает!
надо срочно все calltip.* в настройках поменять...
Автор: mozers
Дата сообщения: 25.04.2007 11:43
vladvro
Цитата:
надо срочно все calltip.* в настройках поменять...
А я то надеялся что бага будет исправлена программным путем...

ALL
Выкладываю новый SciTELua.api
Добавлены подсказки для практически всех свойств и методов SciTE Lua Scripting Extension (выдрал из пакета SciTE4AutoIt3).
Более полного API файла я еще не видел Творите!
Автор: VVP91
Дата сообщения: 25.04.2007 14:49

Цитата:
Поздравляю с первым постом!

Спасибо.
Еще вопрос - существует для SciTE какой-либо code explorer. Понимаю, что можно воспользоваться поиском процедур и функций, но там немного не то.
Интересен именно функционал дополнительного окна с браузером/деревом программного кода открытого/активного файла.


Автор: junq
Дата сообщения: 25.04.2007 19:11
Вот пользуюсь им на работе - все нормально, принес домой этот же SciTE - файлы, в имени которых есть пробел ни в какую не хочет открывать - создает новых файлов столько, сколько пробелов в имени, и то что после последнего пробела уходит в имя открытого файла, который так же пуст.... приходиццо драгандропом перетаскивать, может кто подскажет как сделать без гемороя? (свечи не предлагать )
Автор: mozers
Дата сообщения: 25.04.2007 20:40
junq
Поздравляю с первым постом
Ошибка в том, что имя файла %1 необходимо заключать в кавычки
Код: [HKEY_CLASSES_ROOT\SciTE.File\shell\open\command]
@="\"G:\\SciTE\\SciTE.exe\" \"%1\""
Автор: junq
Дата сообщения: 25.04.2007 20:57
mozers

Цитата:
Если речь идет о сборке SciTE-Ru, то проще использовать пункт меню Tools - Настройка интеграции с Windows... - он все сделает в лучшем виде и без геммороя

Да, действительно, теперь заработало (: Спасибо. Добавлю, что открывать файлик SciTE_WinIntegrator.hta надо Ентернед Эксплорером, даже не знал что можно на хтмл писать проги ((:
Автор: mozers
Дата сообщения: 25.04.2007 23:09
junq
Вообще то файлы HTA (HTML Application) открывает mshta.exe (IE - тут только посредник). Ну а внутри - обычный HTML файл на котором можно все что хошь сделать
В пакете SciTE-Ru два таких примера. Вот еще один - SessionManager (кстати, вновь сурьезно обновил).
Автор: mozers
Дата сообщения: 26.04.2007 11:43
Всетаки я думаю это - тоже бага:
Почему такая команда выполняется нормально:
Код: command.help.*=$(CurrentWord)!С:\Developer\HTML\tags.chm
command.help.subsystem.*=4
Автор: bit developer
Дата сообщения: 27.04.2007 07:24
Как настроить текст в скобках "(" и ")"?
Т.е. нужно, чтобы между скобками обрабатывались другие ключевые слова.
Например: procedure(param1,param2)
Автор: VVP91
Дата сообщения: 27.04.2007 11:23

Цитата:
Возникает вопрос по какому принципу строить дерево (дерево проекта из нескольких файлов - это понятно, но дерево на основе одного файла - имхо надуманно очень)... Или ты про браузер объектов говоришь?
Не совсем про браузер объектов. В Delphi есть такая штука, как Code Explorer. Этот инструмент отображает структуру конкретного файла - классы, типы, переменные, свободные процедуры и функции, методы и аттрибуты классов, перечень подключаемых модулей. Все это возможно по разному группировать, отмечать незавершенные классы. Все это несколько упрощает работу с большими исходниками.

Цитата:
Или ты про браузер объектов говоришь? Имхо последнее осуществимо только для конкретного языка программирования и является далеко не тривиальной задачей.

Да я собственно согласен, что далеко не простенькая задача. Поэтому и интересуюсь у сообщества, какие есть подвижки в этом направлении.
Автор: vladvro
Дата сообщения: 28.04.2007 11:54
bit developer
Цитата:
Как настроить текст в скобках "(" и ")"?
Т.е. нужно, чтобы между скобками обрабатывались другие ключевые слова.
Например: procedure(param1,param2)

т.е. что бы ключевые слова внутри круглых скобок отображались иначе чем вне скобок?
в общем случае - никак.
вся раскраска синтаксиса завязанна на возможности текущего лексера.
возможно среди существующих есть такой, где обрабатывается подобная ситуация, но будет ли он в остальном подходить?
Автор: mozers
Дата сообщения: 28.04.2007 18:39
VVP91
Имхо тебе надо искать отдельную прогу с желаемым функционалом. Вот как найдешь - тогда будем думать можно ли ее к SciTE приладить
Твой вопрос подтолкнул мою давнюю мечту - сделать браузер объектов DOM. Сделал Выбираешь html файл и видишь все объекты, их свойства и значения что имеются на странице. Вот только не знаю где бы мое творение выложить чтобы прославиться Если кто знает - напишите в ПМ - тут это - оффтопик
Автор: mimir
Дата сообщения: 28.04.2007 18:41

Цитата:
Как настроить текст в скобках "(" и ")"?
Т.е. нужно, чтобы между скобками обрабатывались другие ключевые слова.
Например: procedure(param1,param2)

Это похоже на блочные коментарии (в C++ начинаються /** .... **/).
В них отрабатываються отдельный набор ключевых слов. Но там вроде завязка на символ "@", да и символы начала тоже не настраиваются. Но если интересно можно сделать что-то подобное и самому ( в исходниках ).
Автор: olsufr
Дата сообщения: 01.05.2007 01:56
UTF-8

Подскажите, как настроить Scite, чтобы он нормально распознавал файл в кодировке UTF-8 (т.е. чтобы не надо было специально для этого что-то нажимать), а также чтобы сохранял такие файлы без кук.
С Emeditor таких проблем нет совсем, но Scite мне удобнее.
Автор: aha
Дата сообщения: 01.05.2007 11:01
Скачал SciTE_173_37Ru_090407
Много в нем хорошего, а что делать с простыми вещами? почему такой простой файлик ( к примеру)
http://meetfile.com/files/28358/test.txt.html
он откывает криво
http://bestpics.ru/full/2007-05-01_115739.jpg
в то время как BREd нормально
http://bestpics.ru/full/2007-05-01_105418.jpg
вот
Автор: BioInfo
Дата сообщения: 01.05.2007 16:22
Небольшая предыстория: лично считаю что программа должна запоминать свои размеры сама и пользователь устанавливает размеры 1 раз, т.е. когда я ширину допустим поменял у окошка, вышел, то при заходе я ожидаю что она - ширина должна сохраниться той какой я настроил... По этому мне не совсем понятно было почему в программе нужно где то прописывать вручную размеры окна, как будто я с пиксельной линейкой по жизни ползаю и замеряю все... В общем такой расклад мне в редакторе пришелся не по нраву.
Благо есть к нему открытые исходники!
Поковырявшись немного написал следующее (чтобы включить нужно добавить в файл настроек параметр position.autosave=1)

код на сохранение положения окна программы:

Файл SciTEWin.cxx, вставить класс:

Код: [no]//!-start-[position.autosave][/no]
class PropFileEx
{
public:
bool Open(FilePath filename) {
m_filename = filename;
FILE * file = filename.Open(fileRead);
if (file) {
char propsData[100];
int len;
while ( !feof(file) ) {
len = fread(propsData, 1, sizeof(propsData)-1, file);
propsData[len] = [no]'\0'[/no];
m_buf += propsData;
}
fclose(file);
return true;
}
return false;
}

void ToDesctopRect(RECT &rc){
ToDesctopRect(rc.left, rc.top, rc.right, rc.bottom);
}

void ToDesctopRect(long &left, long &top, long &right, long &bottom) {
[no]// See if taskbar's autohide property is on[/no]
APPBARDATA abd = {0};
abd.cbSize = sizeof(abd);
if(!(::SHAppBarMessage(ABM_GETSTATE, &abd) & ABS_AUTOHIDE)) {
[no]// Get the taskbar rect[/no]
::SHAppBarMessage(ABM_GETTASKBARPOS, &abd);
switch(abd.uEdge) {
case ABE_TOP:
top += abd.rc.bottom - abd.rc.top;
bottom += abd.rc.bottom - abd.rc.top;
break;
case ABE_LEFT:
left += abd.rc.right - abd.rc.left;
right+= abd.rc.right - abd.rc.left;
break;
}
}
}

void SetProperty(SString sProperty, int Value) {
char buf[1024] = {0};
sprintf(buf,[no]"%s=%d"[/no], sProperty.c_str(), Value);
int insertPos = m_buf.search(sProperty.c_str());
if (insertPos != -1 ) {
int firstPos = insertPos;
while (firstPos > 0 && m_buf[firstPos-1] != [no]'\n'[/no] && m_buf[firstPos-1] != [no]'\r'[/no] )
firstPos--;
int lastPos = m_buf.search([no]"\r"[/no], insertPos);
m_buf.remove(firstPos,
lastPos>firstPos?lastPos - firstPos:m_buf.length() - firstPos);
m_buf.insert(firstPos, buf);
}
else {
m_buf += [no]"\r\n"[/no];
m_buf += buf;
m_buf += [no]"\r\n"[/no];
}
}

void Save() {
if (m_filename.IsSet()) {
FILE * file = m_filename.Open(fileWrite);
if (file) {
fwrite(m_buf.c_str(), sizeof(char), m_buf.length(), file);
fclose(file);
}
}
}

SString GetString() {
return m_buf;
}

private:
SString m_buf;
FilePath m_filename;
};
[no]//!-end-[position.autosave][/no]
Автор: mozers
Дата сообщения: 01.05.2007 18:40
olsufr
SciTE "железно" распознает при открытии UTF-8 файл только если он имеет заголовок BOM. При открытии файлов UTF-8 не имеющих заголовка распознавалка срабатывает далеко не всегда (тогда выбрать нужную кодировку можно через меню Файл-Кодировка).
Файл сохраняется с заголовком если через меню Файл-Кодировка было выбрано "UTF-8 с заголовком" и без заголовка, если выбрано просто "UTF-8".

aha
Этот твой файлик - в официально неподдерживаемой SciTE кодировке dos866.
Если пользуешь SciTE-Ru то нажми Alt+F9 (см. соответствующий пункт в меню Tools) - и все будет нормально

BioInfo
Поздравляю с первым постом!
Код - интересен Но на мой взгляд, логичнее было бы сохранять установки в SciTEUser.properties, тогда и идеология бы не пострадала и лишний файл не нужен и со считыванием можно было бы не заморачиваться. В последней сборке это дело поручено внешнему скрипту. Если уж реализовать эту функцию в ядре, то делать это без ущерба существующей функциональности. А скрипт на сегодня - более функционален поскольку сохраняет не только размеры окна, но и кучу других параметров.

Цитата:
чем уважаемый народ пользуется чтобы сравнить изменения в двух файлах
Лично я часто пользуюсь встроенным инструментом сравнения Total Commander. CompareIt!, конечно, на порядок более наворочан - пользуюсь и им. Скачал бесплатную альтернативу WinMerge, но так и не испробовал...

Цитата:
Еще есть в коде места (особенно по циклам) где переменные объявляются с одним и тем же именем, это здешние сделали или такой в комплекте шел?
Все изменения SciTE-Ru выделены. Если нет пометок - значит таков оригинальный код. А вообще, странно - компилю не в первый раз - никогда такого не замечал... Поконкретнее бы...
Автор: aha
Дата сообщения: 01.05.2007 18:53


Цитата:
aha
Этот твой файлик - в официально неподдерживаемой SciTE кодировке dos866.
Если пользуешь SciTE-Ru то нажми Alt+F9 (см. соответствующий пункт в меню Tools) - и все будет нормально

это плохо , что не поддерживаемой...
вообще там вроде OEM и его смог открыть AkelPad на курьер нею...так что БРЕД 3 без печати умер!... а его место занял AkelPad...остальное все в дауне!
Автор: BioInfo
Дата сообщения: 01.05.2007 20:41
mozers


Цитата:
Код - интересен Но на мой взгляд, логичнее было бы сохранять установки в SciTEUser.properties, тогда и идеология бы не пострадала


Это не проблема, можно сделать в SciTEUser.properties, можно также добавить чтобы там же можно было "автосохранение позиции окна" включить/выключить, чтобы уж совсем круто было
Если интересно, то я могу доработать свой код до этого уровня.


Цитата:
скачал бесплатную альтернативу WinMerge, но так и не испробовал...

Классная штука!!! Все изменения как на ладони!


Цитата:
компилю не в первый раз - никогда такого не замечал... Поконкретнее бы...

Да, так и есть, изменение внесены здешними мастерами.
Проблемные места находятся в !-start-[SubMenu]
в файле SciTEWinBar.cxx ошибка - int item объявлена несколько раз, тоже самое в файле SciTEBuffers.cxx, только там к int item еще прибавилась int i
Лечится выносом объявления переменной из объявления цикла, вообще не знаю как там по уму, но вроде как низя объявлять переменные с одинаковым именем в одной области видимости... В новых компиляторах может все и подругом, совсем видать от прогресса отстал

Кстати была некоторая трудность с использованием старого компилятора от мелкомягких, лечится так:
В файл Platform.h (scintilla\include) нужно добавить

Код:
#ifdef _MSC_VER
#if _MSC_VER < 1300
#define SetWindowLongPtr SetWindowLong
#define GetWindowLongPtr GetWindowLong
#define GWLP_USERDATA GWL_USERDATA
#define DWLP_USER DWL_USER
#define GWLP_WNDPROC GWL_WNDPROC
#endif
#ifndef LONG_PTR
#define LONG_PTR long
#endif
#ifndef DWORD_PTR
#define DWORD_PTR DWORD
#endif
#endif

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869

Предыдущая тема: LeechGet


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.