Ru-Board.club
← Вернуться в раздел «Тестирование»

» SciTE Ru-Board Edition

Автор: mozers
Дата сообщения: 06.06.2007 20:32
Последняя версия редактора из проекта SciTE-Ru - 3.25 .99 [Сборка 03.03.2013]
Oписание: сборки ядра

Проект на Google Code:
Предложения и баги (Issue Tracker)
Тут Вы можете добавить свое предложение, найденный баг или оказать помощь по решению ранее найденной проблемы.
HG репозитарий
Самый последний вариант кода и сборки.
Для участия в проекте рекомендуется установить Mercurial или TortoiseHg
Рассылка сообщений
Об новых предложениях/багах и О выполненных доработках.
Все изменения дистрибутива SciTE-Ru

В этой теме рассматриваются только вопросы, связанные с совершенствованием и компиляцией
SciTE Ru-Board Edition


Дружественная тема - SciTE Общие вопросы
Автор: valmont
Дата сообщения: 07.06.2007 02:18
для чего в отдельную тему то? тогда уж в тестирование дорога........
а в целом сборка хороша!!!
Автор: Nep
Дата сообщения: 07.06.2007 07:02

Цитата:
тогда уж в тестирование дорога.

Автор: Eric Lazzy
Дата сообщения: 07.06.2007 08:01
а что это?

ага, понятно

полезная штуковина, хоть и не всем нужна
Автор: vladvro
Дата сообщения: 07.06.2007 08:36
BioInfo

Цитата:
С этим разобрался
Изменения: в найденной строке убирает в начале пробелы и табы, ставит 1 пробел (после ':'), и вообще по всей строке заменяет табы на пробелы.

Господа, давайте возьмем за правило - все изменения, которые МЕНЯЮТ функционал редактора, делать опциональными.

Цитата:
Контейнеры откомпилились?

нет:
Код: ../src/Containers.h: In member function `void TArray<TYPE, ARG_TYPE>::InsertAt(int, ARG_TYPE, int)':
../src/Containers.h:280: error: `POSITION' undeclared (first use this function)
Автор: mozers
Дата сообщения: 07.06.2007 09:46
Nep
Цитата:
тогда уж в тестирование дорога.

Виноват, сразу не догадался
Щас все ссылочки поправлю...
Автор: vladvro
Дата сообщения: 07.06.2007 09:50
BioInfo
Цитата:
Насколько я понял, данные строчки нужно добавить в others_.properties

style.errorlist.30=fore:#000000,bold - да, а
lexer.errorlist.findliststyle=1 - нет, это надо довавить в файл глобальных (пользовательских) настроек
Автор: mozers
Дата сообщения: 07.06.2007 09:58
vladvro
Цитата:
нет, это надо довавить в файл глобальных (пользовательских) настроек
Да какая разница? И так и так работать будет.
Автор: vladvro
Дата сообщения: 07.06.2007 10:27

Цитата:
Да какая разница? И так и так работать будет.

и точно, никакой, совершенно верно
Автор: BioInfo
Дата сообщения: 07.06.2007 12:51
vladvro

Цитата:
Господа, давайте возьмем за правило - все изменения, которые МЕНЯЮТ функционал редактора, делать опциональными.


[more=Крик души]Это ты хорошо сказал... Т.е. нужно каждый чих в опции выносить?
Я так понял сдесь только "путь расширения", да и при том еще опционального?
Это никуда не годится, те же тулбар, контекстные меню я полностью перелопачивал!
Начинаю догонять почему тут вокруг этого товарища Нейла так все построено...

Давайте так: если изменения - безусловно позитивные то их включаем, например "правильную" раскраску при поиске я считаю безусловным плюсом, который должен работать так по умолчанию. Если не безусловно позитивные, то делаем из них конфетку, а потом включаем.

Какой смысл делать редактор с которым можно работать только если знать его настройки?
Над настройками большинства программ я вообще не задумываюсь, они сразу работают как надо...
[/more]

Что касается данных изменений - я для того и запостил, чтобы недостатки выявить, пока этим кодом пользуюсь только я. Ну так чего его в lexer.errorlist.findliststyle=1 оборачивать?
Автор: vladvro
Дата сообщения: 07.06.2007 13:18
BioInfo
Цитата:
Это ты хорошо сказал... Т.е. нужно каждый чих в опции выносить?

а ты хочешь что бы кто-то, например я, потом кастерил тебя за этот чих и самостоятельно лез в код что бы исправить?
я понимаю, что есть некоторые изменения, которые слишком сложно сделать опциональными, это еще может служить оправданием, но если просто лень...

Цитата:
Давайте так: если изменения - безусловно позитивные то их включаем, например "правильную" раскраску при поиске я считаю безусловным плюсом, который должен работать так по умолчанию.

сделать ту или иную опцию по умолчанию "включеной" проблем нет, вопрос обсуждаемый, делать по принципу - "мы так решили - у всех будет так" - противоречит основной идее этого редактора - "Один из самых настраиваемых текстовых редакторов..." (см. шапку основного топика).

Цитата:
Что касается данных изменений - я для того и запостил, чтобы недостатки выявить, пока этим кодом пользуюсь только я. Ну так чего его в lexer.errorlist.findliststyle=1 оборачивать?

оборачивать надо не в lexer.errorlist.findliststyle=1, а в новый параметр,
а сделать это заранее лучше, что бы потом mozers было меньше править, либо тогда оговаривай, что это пока только тест и в сборку этот код не добавлять.
Автор: mozers
Дата сообщения: 07.06.2007 13:58
BioInfo vladvro
Возможность включать или отключать дополнительную фичу - это хорошо.
С другой стороны дополнительные и ненужные опции перегружают редактор и делать все доработки опциональными - решение не из лучших.
ИМХО, в настоящее время вы придерживаетесь мудрого баланса, добавляя опциональность там, где она действительно нужна.
Я думаю этим путем и надо идти.
А вот то, что "каждый свой чих" в коде необходимо комментировать по установленной схеме - это я считаю обязательным.
Автор: BioInfo
Дата сообщения: 07.06.2007 15:35
vladvro

Цитата:
но если просто лень...

Чесно говоря - просто лень
А что такое "кастерил" я не знаю - не грамотный
И вообще это был "крик души" - не принимай близко к сердцу

mozers
Три противоположных мнения и тем не мение движемся

vladvro mozers
Ну давайте тогда по хорошему обговорим эти роковые "изменения, которые МЕНЯЮТ функционал редактора".
Факт - Влад усовершенствовал поиск (стало нагляднее). Я предложил вполне логичную примочку (станет еще нагляднее). По моему мнению это звенья одной цепи и должны находится в одном блоке усовершенствований [Красивый поиск от русской сборки].
Поскольку основная идея этого редактора "Один из самых настраиваемых текстовых редакторов...", то усовершенствованный поиск должен отключатся/включатся и логичнее всего весь сразу. Но, поскольку это все таки "русская сборка", то все должно быть по умолчанию включено.
Как на счет такого подхода?

Что касается функциональных расширений, то их отключаемыми делать ИМХО не нужно. Примеры: расширения возможностей классов, добавление новых классов, расширение взаимодействия с луа, новые сообщения.

Есть также фундаментальные изменения (такие как изменение работы меню и тулбара), как быть в этом случае? Проблема в том что под разные платформы данный функционал пишется по разному хотя сама структура одинакова...
Ох, чувствую придется мне ставить GTK и смотреть как там все работает...
Автор: mozers
Дата сообщения: 07.06.2007 16:36
Предлагаю дебаты по этому поводу прекратить, поскольку все и так делается как надо.
А усовершенствованный поиск vladvro я бы тоже попросил сделать по умолчанию
И думаю что в природе не найдется ни одного здравомыслящего пользователя, который захочет использовать старый вариант...
Автор: WATERPROOF
Дата сообщения: 07.06.2007 23:59
В архиве, в исходниках, нет mak-файла
Компилятор GCC выдает ошибку

Цитата:
In file included from ../src/SciTEBuffers.cxx:61:
../src/Containers.h: In member function `void TArray<TYPE, ARG_TYPE>::InsertAt(int, ARG_TYPE, int)':
../src/Containers.h:280: error: expected `;' before "pos"
../src/Containers.h:282: error: `pos' undeclared (first use this function)
../src/Containers.h:282: error: (Each undeclared identifier is reported only once for each function it appears in.)

Borland:

Цитата:
Error E2034 ..\src\SciTEIO.cxx 1142: Cannot convert 'const char *' to 'char *'
in function SciTEBase::GrepRecursive(SciTEBase::GrepFlags,FilePath,const char *,const char *)

dll-ka компилируется нормально
Автор: vladvro
Дата сообщения: 08.06.2007 09:47
mozers
Цитата:
И думаю что в природе не найдется ни одного здравомыслящего пользователя, который захочет использовать старый вариант...

ну есть же еще и не "здравомыслящие" пользователи, зачем же их обижать
а чтобы сделать по умолчанию надо поменять:
LexOthers.cxx строка 1087
Код: bool isFindListStyle = styler.GetPropertyInt([no]"lexer.errorlist.findliststyle"[/no], 0) == 1;
на
bool isFindListStyle = styler.GetPropertyInt([no]"lexer.errorlist.findliststyle"[/no], 1) == 1;
Автор: mozers
Дата сообщения: 08.06.2007 11:23
WATERPROOF
Цитата:
В архиве, в исходниках, нет mak-файла
Просто в архиве - только измененные файлы. Лично я без проблем пользуюсь оригинальным, Нейловским mak-файлом, точнее - компилю с помощью такого батника:
compile_VC7.bat
Код: @[no]echo[/no] off

[no]set[/no] DevEnvDir[no]=[/no]c:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE
[no]SET[/no] VC[no]=[/no]c:\Program Files\Microsoft Visual Studio .NET 2003
[no]set[/no] MSVCDir[no]=%VC%[/no]\VC7

[no]set[/no] PATH[no]=%DevEnvDir%[/no];[no]%MSVCDir%[/no]\BIN;[no]%VC%[/no]\Common7\Tools;[no]%VC%[/no]\Common7\Tools\bin\prerelease;[no]%VC%[/no]\Common7\Tools\bin;[no]%PATH%[/no];
[no]set[/no] INCLUDE[no]=%MSVCDir%[/no]\ATLMFC\INCLUDE;[no]%MSVCDir%[/no]\INCLUDE;[no]%MSVCDir%[/no]\PlatformSDK\include\prerelease;[no]%MSVCDir%[/no]\PlatformSDK\include;
[no]set[/no] LIB[no]=%MSVCDir%[/no]\ATLMFC\LIB;[no]%MSVCDir%[/no]\LIB;[no]%MSVCDir%[/no]\PlatformSDK\lib\prerelease;[no]%MSVCDir%[/no]\PlatformSDK\lib;

[no]cd[/no] scintilla\win32
nmake -f scintilla.mak
[no]cd[/no] ..\..
[no]cd[/no] scite\win32
nmake -f scite.mak
Автор: WATERPROOF
Дата сообщения: 08.06.2007 14:55
ну а че делать с ошибками?
Автор: vladvro
Дата сообщения: 08.06.2007 15:03
WATERPROOF
Цитата:
Компилятор GCC выдает ошибку
../src/Containers.h: In member function `void TArray<TYPE, ARG_TYPE>::InsertAt(int, ARG_TYPE, int)':
../src/Containers.h:280: error: expected `;' before "pos"

BioInfo выдал такое решение:
Containers.h строка 279
Код: void InsertAt(int nIndex, ARG_TYPE newElement, int nCount = 1) {
for (int i=0; i<nCount; i++)
m_ArrayData.InsertBefore(m_ArrayData.FindIndex(nIndex),newElement);
}
Автор: mozers
Дата сообщения: 08.06.2007 22:14
Обновил Текущие исходники:
Новый вид результата поиска по файлам включен по умолчанию (про существование lexer.errorlist.findliststyle можно спокойно забыть
VladVRO "подправил чуток код реализации [FileReaderUnlimitedLen]".
И вновь вся сборка компилируется без единого ворнинга
Автор: WATERPROOF
Дата сообщения: 08.06.2007 22:18
Скомпилировалось. А вот такой вопрос: почему, если в файле глобальных настроек закомментировать некоторые кнопки:
#9|IDM_FINDNEXT|\
#33|IDM_REPLACE|\
скайт не игнорирует знак комментария, т.е. пытается как-то интерпретировать эту строку

А можно ли где-то найти список всех номеров команд? C описанием.

И всплывающие подсказки тоже желательно как-то прикрутить, а то даже из имен IDM_ не все понятно
(Это скорее запрос, так что извините что не в ту тему...)


Цитата:
Обновил Текущие исходники

А containers.h так и не поправил? или у тебя без ошибок компилирует?
Автор: vladvro
Дата сообщения: 09.06.2007 11:20
mozers
Цитата:
И вновь вся сборка компилируется без единого ворнинга

разве? вот это никуда не делось:
Цитата:
LexOthers.cxx
..\src\LexOthers.cxx(1030) : warning C4127: conditional expression is constant

для того что бы убрать это предупреждение надо подправить
LexOthers.cxx строка 1030
Код: [no]// Shut up Visual C++ warning C4127: conditional expression is constant[/no]
#ifdef _MSC_VER
#pragma warning(disable: 4127)
#endif
while (true) {
while (0 != strnicmp(lineBuffer + p, findValue, len)) {
p++;
if (p > lengthLine - len) {
p = lengthLine;
break;
}
}
if (p < lengthLine) {
styler.ColourTo(startPos + p, SCE_ERR_DEFAULT);
styler.ColourTo(startPos + p + len, SCE_ERR_FIND_VALUE);
p += len;
} else {
break;
}
}
styler.ColourTo(endPos, SCE_ERR_DEFAULT);
}
#ifdef _MSC_VER
#pragma warning(default: 4127)
#endif
Автор: BioInfo
Дата сообщения: 09.06.2007 16:27
vladvro

Цитата:
LexOthers.cxx
..\src\LexOthers.cxx(1030) : warning C4127: conditional expression is constant

Чето у меня подобных ворнингов нет
На while (true) ругается? Так не лучше тогда код переписать, чем всякие #ifdef плодить?
Я не совсем понял что там происходит, но может лучше как нить так:

Код: while (p > lengthLine - len) {
while (0 != strnicmp(lineBuffer + p, findValue, len) && p > lengthLine - len) {
p++;
}
if (p <= lengthLine - len) {
styler.ColourTo(startPos + p, SCE_ERR_DEFAULT);
styler.ColourTo(startPos + p + len, SCE_ERR_FIND_VALUE);
p += len;
}
}
Автор: vladvro
Дата сообщения: 09.06.2007 17:04
BioInfo
Цитата:
Чето у меня подобных ворнингов нет

выдает только компилятор Visual C++

Цитата:
На while (true) ругается?

совершенно верно

Цитата:
Я не совсем понял что там происходит, но может лучше как нить так:

там идет поиск искомой подстроки и выделение ее (вхождений может быть несколько)
оба твои варианта НЕ рабочии

Цитата:
Блин, тут кто-то жаловался на лень

ага, кому-то было лень даже проверить

Цитата:
но то что это можно написать проще и без ворнингов - факт

можно, например так:
LexOthers.cxx строка 1034
Код: while (p < lengthLine) {
while (0 != strnicmp(lineBuffer + p, findValue, len)) {
p++;
if (p > lengthLine - len) {
p = lengthLine;
break;
}
}
if (p < lengthLine) {
styler.ColourTo(startPos + p, SCE_ERR_DEFAULT);
styler.ColourTo(startPos + p + len, SCE_ERR_FIND_VALUE);
p += len;
}
}
Автор: BioInfo
Дата сообщения: 10.06.2007 13:17
vladvro

Цитата:
оба твои варианта НЕ рабочии

Блин, ну не уж то не видно что знаком ошибся?
LexOthers.cxx строка 1048
Код: while (p < lengthLine - len) {
if (0 == strnicmp(lineBuffer + p, findValue, len)) {
styler.ColourTo(startPos + p, SCE_ERR_DEFAULT);
styler.ColourTo(startPos + p + len, SCE_ERR_FIND_VALUE);
p += len - 1;
}
p++;
}
Автор: mozers
Дата сообщения: 10.06.2007 17:04
Обновил Текущие исходники:
Цитата:
[GetApplicationProps] (Автор: VladVRO)
Новая функция SciTEBase::GetProps() (для разработчиков)
позволяет получить доступ к настройкам редактора в любом месте кода редактора.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[NewBufferPosition] (Автор: VladVRO)
Новый параметр в .properties
buffers.new.to.next=1
меняет позицию где открывается или создается новый буфер с последней на следующую за текущим открытым.
Зафигом нужна первая функция так и не понял. Если она не будет востребована - удалю.
Компилируется (Microsoft Visual Studio .NET 2003) с двумя предупреждениями:
Код: ..\src\LexOthers.cxx(1030) : warning C4127: conditional expression is constant
Автор: BioInfo
Дата сообщения: 10.06.2007 18:11
vladvro

Цитата:
buffers.new.to.next=1
меняет позицию где открывается или создается новый буфер с последней на следующую за текущим открытым.

А можно тогда еще сделать
buffers.new.to.next=2
и новый файл будет открываться на первой позиции?
Автор: mozers
Дата сообщения: 10.06.2007 18:36
Еще одно предложение:
Убрать нафиг параметр command.hide.number.filepattern
Пусть эти функции выполняет command.name.filepattern=
Т.е. если название команды не задано, то она просто не показывается в меню, но работает как обычно.
Мне кажется так - элеганутее будет
Нейл утверждает, что эта фича работает и в оригинальном SciTE. Я попробовал - ни хрена...
Автор: BioInfo
Дата сообщения: 10.06.2007 20:16
mozers

Цитата:
Нейл утверждает, что эта фича работает и в оригинальном SciTE.

Может они сделали в новой версии, в предоставленных исходниках эта фича не работает.
Если имя команды не задано оно не создается в меню вообще и никак вообще не обрабатывается.
Изначальный алгоритм такой:
Бежим от первого до последнего возможного меню tools. Если имя задано, то добавляем.
Так что товарищь Нейл тут не прав.
Твою инициативу не поддерживаю.

Добавлено:
mozers

Цитата:
Это что то в [FillProperty] ей не нравится. Тут мы вроде как договоролись с BioInfo исключить эту функцию как таковую и сделать чтобы ее работу выполняла какая нить уже имеющаяся функция.

Могу сделать так чтобы FillProperty вызывалась всегда при (считывании значения) обращении к props (через lua), сойдет?
Больше ума не приложу куда ее можно засунуть, если только у каждого параметра поставить чтобы он свое актуальное значение в props хранил, да больно уж геморно это...
Автор: mozers
Дата сообщения: 10.06.2007 21:02
BioInfo
Цитата:
Твою инициативу не поддерживаю.
Билин, ты как Нейл стал... Хоть бы объяснил почему нет?... Много переделывать что ли?
Ну виноват я что сразу так не предложил. "Умная мысля приходит опосля"

Цитата:
Могу сделать так чтобы FillProperty вызывалась всегда при (считывании значения) обращении к props (через lua), сойдет?
Гениально! Пусть параметры обновляются только тогда, когда они действительно необходимы.

Страницы: 1234567891011121314151617181920212223242526

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


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