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

» SciTE Ru-Board Edition

Автор: vladvro
Дата сообщения: 15.06.2007 16:55
BioInfo
поздравляю со сдачей диплома

Цитата:
Если мой пример отработает без ошибок

если я правильно понял, и "интер" это действие по нажатию кнопки "Enter", то твой пример отрабатывает правильно.
chupakabra
у меня после else отступ нормально делался и делается
Автор: chupakabra
Дата сообщения: 15.06.2007 18:09
vladvro

Цитата:
у меня после else отступ нормально делался и делается

Непонятно. Можешь выложить свою версию SciTE с настройками? Попробую разобраться почему у меня так...
Автор: BioInfo
Дата сообщения: 17.06.2007 19:23
Айм бэк

Ну раз пошла такая жара, то давайте делать [more=так]
Document.cxx строка 963
Код: static inline char MakeUpperCase(char ch) {
[no]//!-start-[LowerUpperCase][/no]
#if PLAT_WIN
::CharUpperA(&ch);
return ch;
#else
[no]//!-end-[LowerUpperCase][/no]
if (ch < [no]'a'[/no] || ch > [no]'z'[/no])
return ch;
else
return static_cast<char>(ch - [no]'a'[/no] + [no]'A'[/no]);
#endif [no]//!-add-[LowerUpperCase][/no]
}

static inline char MakeLowerCase(char ch) {
[no]//!-start-[LowerUpperCase][/no]
#if PLAT_WIN
::CharLowerA(&ch);
return ch;
#else
[no]//!-end-[LowerUpperCase][/no]
if (ch < [no]'A'[/no] || ch > [no]'Z'[/no])
return ch;
else
return static_cast<char>(ch - [no]'A'[/no] + [no]'a'[/no]);
#endif [no]//!-add-[LowerUpperCase][/no]
}
Автор: alrusdi81
Дата сообщения: 18.06.2007 08:00
vladvro

Цитата:
именно часть параметров не грузится, или может он не тот конфиг просто цепляет?
Часть параметров. Настройки берет из нужного конфига. Я использую только SciTEGlobal.properties не обрабатываются лишь настройки видимости табов, статус бара и тулбара.

BioInfo
Гений) Со сдачей диплома тебя!
Скомпилю код с твоими правками и завтра доложусь о результатах.
Автор: vladvro
Дата сообщения: 18.06.2007 08:38
chupakabra
Цитата:
Непонятно. Можешь выложить свою версию SciTE с настройками? Попробую разобраться почему у меня так...

протестировал на сборке и на оригинальной версии от Нейла - и там и там нормально работает,
сбой происходит только в одном случае, если пытаешься набирать в конце файла

BioInfo
Цитата:
Тут тоже не нужно было такой огород городить, достаточно было просто сделать так

мне показалось, что функция strnicmp будет работать быстрее

Цитата:
Что такое //!-start-[VarAbbrev] и почему он сюда вообще попал?

SciTE.Ru_kernel_changes.txt строка 429
Код: [VarAbbrev] (Автор: mimir, VladVRO) | Последняя правка: 16.12.2006
В списки сокращений (abbrev) можно добавлять пользовательские переменные.
- %SEL% - выделенный текст
- %CLP% - текст из буфера обмена
- %[имя_переменной]% - значение внутренней переменной SciTE (например, CurrentSelection, FileNameExt, SciteDefaultHome и т.п.)
- %GUID% - уникальный GUID нового объекта (идея принадлежит codewarlock1101)
Автор: mozers
Дата сообщения: 18.06.2007 12:28
Обновил текущие исходники
Доработки прислали vladvro
Цитата:
реализовал задумку, о которой заикался Дима - что бы в результатах поиска выводился не полный путь, а только часть.
и немного поправил восприятие параметра lexer.errorlist.findliststyle
и BioInfo
Цитата:
1. Посмотрел я изменения и ужаснулся...
2. Исправил косяк в "check.if.already.open", пока откажемся от его сохранения, оказывается он меняется на фалсе когда запускается вторая копия Если очень нужно его сохранять то посмотрю что можно сделать, пока я думаю не критично.
3. Добавил чтобы табы можно было перемещать мышью (секция [TabsMoving])

Багов и недоделок только прибавилось...
Может отложить на время адаптацию к *nix (поскольку быстро это явно не получится) и сделать то, что горит? Русские операторы и внешний тулбар (желательно, чтоб по дефолту был родной, т.е. с иконками из системы, а не из bmp)...
Совсем перестали работать наши добавленные фунции os.run, os.msgbox
Ща пытаюсь запузырить все доработки в SciTE 1.74 (в курсе что вышел релиз?)...
Автор: alrusdi81
Дата сообщения: 18.06.2007 13:14
В принципе, у Нейла написано, чтобы кроссплатформенностью не заморачивались. Сейчас есть классная виндовая сборка, а кому на никсах нужно (мне) и сам все нужное допишет. Я, например, прихожу к крамольной мысли, что то же вложенное пользовательское меню проще сделать статически в коде, чем писать нечто универсальное ради чего приходится перелопачивать всю русскую сборку, чтобы она компилировалась в Линуксе...
На выходных пытался написать вполне заурядный для Винды MessageBox так в GTK это вылилось в полсотни строк кода. Видимо многие функции, которые кажутся нам очевидными не реализованы Нейлом именно из-за того, что сильно дофига усилий нужно прилагать.
Автор: vladvro
Дата сообщения: 18.06.2007 13:14
mozers
Цитата:
Может отложить на время адаптацию к *nix (поскольку быстро это явно не получится)

можно было бы просто пустить пока отдельной веткой.

Цитата:
и сделать то, что горит? Русские операторы

так это уже сделанно

Цитата:
Совсем перестали работать наши добавленные фунции os.run, os.msgbox

конечно перестали, зачем надо было убирать код:
liolib.c строка 23
Код: #if !defined(FOX) && !defined(__WX__) && !defined(GTK) && !defined(_MSC_VER)
#define PLAT_WIN 1
#include <windows.h>
#else
#define PLAT_WIN 0
#endif
Автор: mozers
Дата сообщения: 19.06.2007 07:20
Обновил текущие исходники Теперь - на базе SciTE 1.74
Комментарии будут попозже... (ща убегаю...)
Автор: mozers
Дата сообщения: 19.06.2007 10:47
alrusdi81
Цитата:
В принципе, у Нейла написано, чтобы кроссплатформенностью не заморачивались
Это - в том смысле, что реализацию под другие OS напишут тот, кому это надо. Но компилится SciTE должен.

vladvro
Цитата:
может сперва сделать нормально работающую сборку 1.73.45 (с нормальными конфигами)?
Нет абсолютно никакого желания пыхтеть над сборкой, которая устарела морально и физически еще до ее выхода.

По поводу новых исходников:[UpdateStatusBar], [OnKeyDown], [BookmarksWithSession] - убрал, т.к. реализация этих фич появилась в официале. Если не нравится оригинальная реализация, то надо править уже ее (так, например, добит код к [OnDoubleClick])
[VC6_compatibility] кое где поубирал - вдруг щас и без этого обойдется? Если - нет, то прошу поправить (только комменты - аккуратней, а не как в прошлый раз...)
Editor.cxx - исключен - т.к. изменений в нем нет.
Доработку [TransposeLines] убрал - вроде теперь не надо?
Доработка scite\vcbuild\SciTE.dsp убрана (поскольку не содержит ни одного нашего коммента)
Доработка [FixIndent] закомментирована (т.к. используется statementEnd которого нет в новой версии)
Наши доработки из liolib.c перекочевали в loslib.c
[macro] [OnMenuCommand] [OnSendEditor]LuaExtension.cxx и .h) пришлось закомментировать (т.к. иначе путью не компилится)В Microsoft Visual Studio .NET 2003 откомпилилось без единой ошибки!

Добавлено:
По поводу [UpdateStatusBar], [OnKeyDown], [BookmarksWithSession]:
Ребята! Программисты с Большой буквы! Мы вас любим и ценим. И доработки ваши не пропали зря. Идеи не умирают! Что то в них было сделано гораздо интереснее официальной реализации... Но уж так вышло что не вошел ваш код в релиз. Пожалуйста, не обижайтесь, и ради всех нас, не опускайте руки! Вы еще многое можете!
Автор: mozers
Дата сообщения: 19.06.2007 14:52
ALL
Докладываю: По поводу компиляции в MinGW (ща попробовал вновь после долгого перерыва):
Родные исходники SciTE 1.74 компилятся без единого ворнинга.
Собранный SciTE работает стабильно.
SciTE-Ru 1.74 .45 выдает кучу предупреждений и в конце-концов валится на:
Код: SciTEWin.cxx: In static member function `static void
PropFileEx::ToDesctopRect(long int&, long int&, long int&, long int&)':
SciTEWin.cxx:136: warning: missing initializer for member `_AppBarData::hWnd'
SciTEWin.cxx:136: warning: missing initializer for member `
_AppBarData::uCallbackMessage'
SciTEWin.cxx:136: warning: missing initializer for member `_AppBarData::uEdge'
SciTEWin.cxx:136: warning: missing initializer for member `_AppBarData::rc'
SciTEWin.cxx:136: warning: missing initializer for member `_AppBarData::lParam'
SciTEWin.cxx:138: `ABS_AUTOHIDE' undeclared (first use this function)
SciTEWin.cxx:138: (Each undeclared identifier is reported only once for each
function it appears in.)
Автор: BioInfo
Дата сообщения: 19.06.2007 16:06
mozers
Это мое - комменть всю секцию сохранения позиции окна - потом разберусь...
P.S. А OnKey у них хуже моего, в чем фишка я уже писал... А судя по тому что он засунут в тоже место что и у меня значит что программеры по всему земному шару мыслят в одном направлении В общем не долго доработку мою вкрутить я думаю.

vladvro

Цитата:
последняя версия скомпиленая с помощью MinGW падает сразу при запуске

Таже беда Никак не могу понять где накосячено... Релиз падает при запуске, началось 3 версии назад (считаю последнию, с моими изменениями и до моих последних изменений).
Т.к. самая последняя версия тоже не пашет, какое-то наше дополнение барахлит Пока грешу на контейнеры. Второй вариант - не корректно где то обертка #if сделана.
Падает только релиз, с дебагом все нормально. Следовательно где то есть выход из границ... Релиз трудно отлаживать подает гдето в районе UpdateUI.
Проблема точно не в контекстном меню. Сейчас добавляю по одному изменению и смотрю не упадет ли... долгий процесс...
Автор: mozers
Дата сообщения: 19.06.2007 16:21
vladvro
Цитата:
Совсем перестали работать наши добавленные фунции os.run, os.msgbox

конечно перестали, зачем надо было убирать код:
liolib.c строка 23
Код:#if !defined(FOX) && !defined(__WX__) && !defined(GTK) && !defined(_MSC_VER)
#define PLAT_WIN 1
#include <windows.h>
#else
#define PLAT_WIN 0
#endif
Установка этого добра на место не принесла никакого эффекта

Короче, так:
Обновил текущие исходники
Цитата:
Из loslib.c убрана условная компиляция, т.к. с ней не работал ни один добавленный нами Lua оператор (os.run, os.msgbox и т.д.).


Добавлено:
BioInfo
Цитата:
Это мое - комменть всю секцию сохранения позиции окна

Ну вот еще! Под Microsoft Visual Studio .NET 2003 компилится, а под MinGW кроме этого еще много где править придется
Вывод: не дергайся

Цитата:
А OnKey у них хуже моего, в чем фишка я уже писал
В чем конкретно у Мишеля хуже чем у тебя - не писал

Цитата:
последняя версия скомпиленая с помощью MinGW падает сразу при запуске
Таже беда Никак не могу понять где накосячено...
Так я говорю - там ворнингов - штук 100. Как вообще vladvro под MinGW ее скомпилить умудрился - непонятно
Или ты тоже SciTE-Ru под MinGW компилишь?
И че ворнингов не видишь? Оригинальная то - молча компилится...

Автор: BioInfo
Дата сообщения: 19.06.2007 17:43
mozers

Цитата:
В чем конкретно у Мишеля хуже чем у тебя - не писал

Ну как же, вот:

Цитата:
самое главное что сделано в
OnKeyDown это анализируется "нажатый символ", по этому его можно
использовать вместо OnChar
...
Для тех кому совсем туго, поясняю на пальцах: символ '/' можно ввести
3 разными клавишами с клавиатуры, у этих клавиш соответственно разный
"код клавиши"

Так вот в текущих исходниках передается только "код клавиши".

Цитата:
Или ты тоже SciTE-Ru под MinGW компилишь?
И че ворнингов не видишь?

Нет я под студией 6 компилю. Релиз падает
У тебя такой проблемы нет?

Цитата:
под MinGW кроме этого еще много где править придется

Компиляция не должна прерываться из-за ворнингов, ну а причину ворнингов безусловно нужно править.

vladvro
Проблема не в контейнерах, ну по крайней мере сейчас добавил все секции где их использовал (тулбар, цикличность, контекстное меню) - работает стабильно.

vladvro

Цитата:
последняя версия скомпиленая с помощью MinGW падает сразу при запуске

Нашел откуда ноги растут. Падает здесь (файл PropSet.cxx):
::CharUpperA(&ch);
Это вообще какой-то пипец, что за шаманство я так и не понял!
Обернул значит это чудо в try - экзепшен не вылетает и работает стабильно!!!
static inline char MakeUpperCase(char ch)
убрал inline тоже нормально стало все...
Может как то инлайнится криво?
Короче как гласит мудрая программерская поговорка:
"Ранняя оптимизация корень вселенского зла"
По этому вот такое решение
static /*inline*/ char MakeUpperCase(char ch) {
static /*inline*/ char MakeLowerCase(char ch) {
З.Ы. 2vladvro эта же погорка отвечает на:

Цитата:
мне показалось, что функция strnicmp будет работать быстрее


mozers

Цитата:
Установка этого добра на место не принесла никакого эффекта

А у меня вообще не работает, вот такое пишет:

Код: C:\Program Files\SciTE\tools\SciTEStartup.lua:6: module 'C:\Program Files\SciTE\tools\COMMON.lua' not found:
no field package.preload['C:\Program Files\SciTE\tools\COMMON.lua']
no file '.\C:\Program Files\SciTE\tools\COMMON\lua.lua'
no file 'C:\Program Files\SciTE\lua\C:\Program Files\SciTE\tools\COMMON\lua.lua'
no file 'C:\Program Files\SciTE\lua\C:\Program Files\SciTE\tools\COMMON\lua\init.lua'
no file 'C:\Program Files\SciTE\C:\Program Files\SciTE\tools\COMMON\lua.lua'
no file 'C:\Program Files\SciTE\C:\Program Files\SciTE\tools\COMMON\lua\init.lua'
no file '.\C:\Program Files\SciTE\tools\COMMON\lua.dll'
no file 'C:\Program Files\SciTE\C:\Program Files\SciTE\tools\COMMON\lua.dll'
no file 'C:\Program Files\SciTE\loadall.dll'
no file '.\C:\Program Files\SciTE\tools\COMMON.dll'
no file 'C:\Program Files\SciTE\C:\Program Files\SciTE\tools\COMMON.dll'
no file 'C:\Program Files\SciTE\loadall.dll'
>Lua: error occurred while loading startup script
Автор: mozers
Дата сообщения: 19.06.2007 21:13
BioInfo
Цитата:
самое главное что сделано в OnKeyDown это анализируется "нажатый символ", по этому его можно использовать вместо OnChar
Каюсь, пропустил я этот момент. Но я всегда знал что наши программеры - сильнее

Цитата:
Нет я под студией 6 компилю. Релиз падает
У тебя такой проблемы нет?
Оригинальный код не падал ни разу. SciTE-Ru падал, пока были ворнинги (из за [macro] [OnMenuCommand] [OnSendEditor]).
Закоментировал эти доработки - предупреждения пропали - и готовый SciTE стал работать стабильно.

Цитата:
Компиляция не должна прерываться из-за ворнингов
Если она даже не прерывается, то результат получается очень уж неустойчивый (народная примета).

Цитата:
А у меня вообще не работает, вот такое пишет
Молодец! Ты первый скомпилил 1.74 Знаю это точно, поскольку такой вопрос должен возникнуть у каждого, запустившего нашу сборку с новым ядром
Решается все просто: Заменяем в SciTEStartup.lua все require на dofile.
Решил методом тыка. Почему стало так? - вопрос к спецам по Lua.
Автор: BioInfo
Дата сообщения: 19.06.2007 21:14

Цитата:
А у меня вообще не работает, вот такое пишет:
...
SciTEStartup.lua
...
Lua: error occurred while loading startup script


Заработало [more=вот так]
SciTEStartup.lua
Код: [no]-- Этот файл стартует при загрузке SciTE[/no]
[no]-- Чтобы не забивать его его огромным количеством используемых скриптов, поскольку это затрудняет работу редактора, большинство из них хранятся в обособленных файлах и грузятся только при выборе соответствующего пункта меню Tools.[/no]
[no]-- Здесь (с помощью require) грузятся только скрипты, обрабатывающие события редактора.[/no]
[no]----------------------------------------------------------------------------[/no]
[no]-- Загружаем сборник функций, которые используются во многих скриптах[/no]
require ([no]"\\tools\\COMMON"[/no])

[no]-- Поддержка записи и воспроизведения макросов[/no]
[no]--require ("\\tools\\macro_support")[/no]

[no]-- Автоматическое сворачивание всех секций при открытии файлов заданного типа[/no]
require ([no]"\\tools\\ToggleFoldAll"[/no])

[no]-- Включает HTML подсветку для файлов без расширения, открываемых из меню "просмотр HTML-кода" Internet Explorer[/no]
require ([no]"\\tools\\set_html"[/no])

[no]-- Автозакрытие скобок[/no]
require ([no]"\\tools\\braces_autoclose"[/no])

[no]-- Автоматическое создание резервных копий редактируемых файлов[/no]
require ([no]"\\tools\\auto_backup"[/no])

[no]-- Установка / снятие закладок на строку (Bookmark) (то же что и Ctrl+F2)[/no]
[no]-- с помощью двойного клика мыши при нажатой клавише Ctrl[/no]
require ([no]"\\tools\\MarkerToggle"[/no])

[no]-- Показ имени текущего лексера в статусной строке[/no]
require ([no]"\\tools\\lexer_name"[/no])

[no]-- Замена стандартной команды "Read-Only"[/no]
[no]-- Красит фон закладки не доступной для редактирования и показывает сотояние в статусной строке[/no]
require ([no]"\\tools\\ReadOnly"[/no])

[no]-- Замена стандартной команды SciTE "Открыть выделенный файл"[/no]
require ([no]"\\tools\\Open_Selected_Filename"[/no])

[no]-- Смена кодировки Win1251/DOS866[/no]
require ([no]"\\tools\\win2dos"[/no])

[no]-- Индикация текущей кодировки в строке состояния[/no]
require ([no]"\\tools\\codepage"[/no])

[no]-- При открытии ReadOnly, Hidden, System файлов включает режим ReadOnly в SciTE[/no]
require ([no]"\\tools\\ROCheck"[/no])

[no]-- Поддержка сохранения RO файлов[/no]
require ([no]"\\tools\\ROWrite"[/no])

[no]-- Автозакрытие HTML тегов[/no]
require ([no]"\\tools\\html_tags_autoclose"[/no])

[no]-- Смена текущих шрифтов (Ctrl+F11)[/no]
require ([no]"\\tools\\FontChanger"[/no])

[no]-- Вставка спецсимволов (©,®,§,±,…) из раскрывающегося списка (для HTML вставляются их обозначения)[/no]
require ([no]"\\tools\\InsertSpecialChar"[/no])

[no]-- SciTE_HexEdit: A Self-Contained Primitive Hex Editor for SciTE[/no]
require ([no]"\\tools\\HexEdit\\SciTEHexEdit"[/no])

[no]-- SciTE Calculator[/no]
require ([no]"\\tools\\Calculator\\SciTECalculatorPD"[/no])

[no]-- Автодополнение объектов их методами и свойствами[/no]
require ([no]"\\tools\\AutocompleteObject"[/no])

[no]-- Сохранение параметров настройки SciTE, измененных через меню[/no]
require ([no]"\\tools\\save_settings"[/no])

[no]-- Меняем текущий размер шрифта в статусной строке[/no]
require ([no]"\\tools\\ZoomAuto"[/no])

[no]-- Волшебное комментирование[/no]
require ([no]"\\tools\\smartcomment"[/no])
Автор: mozers
Дата сообщения: 19.06.2007 21:33

Цитата:
Заработало вот так [?]
Я как то давно задавал вопрос: Чем отличается require от dofile и какой из них правильнее использовать?
Так мне никто и не ответил...
Сейчас (с версии 1.74) я, по крайней мере, знаю (с твоей помощью) что они отличаются синтаксисом

Цитата:
Не могу выделить первый символ в строке. Это только у меня так?
У меня - нормально выделяется...


Добавлено:

Цитата:
реализовал задумку, о которой заикался Дима - что бы в результатах поиска выводился не полный путь, а только часть.
Виноват, не попробовал сразу: Началось это с версии 1.73 .45 (т.е. сразу после доработки): У меня двойной щелчок по результату перестал открывать нужный файл
Автор: BioInfo
Дата сообщения: 19.06.2007 22:43

Цитата:
У меня двойной щелчок по результату перестал открывать нужный файл

Подтверждаю.
mozers

Цитата:
У меня - нормально выделяется...

В оригинальной сборке у меня тоже...
Но вот собрал SciTE ru, встаю на начало любой строки (home), нажимаю на shift, нажимаю вперед - не выделяется!
В чем подвох?..
Скрипты тоже отвалились... РО не могу заставить работать! Пипец, на переключение файла срабатывает на открытие нет...
Работает все в кривь и в кось... Я сдаюсь. Пожалуйста почините

З.Ы.

Цитата:
[VC6_compatibility] кое где поубирал - вдруг щас и без этого обойдется?

Верни обратно минимум в Platform.h и в SingleThreadExtension.cxx
На счет совместимости с VC6 ничего не поменялось, можешь все восстанавливать.
Автор: alrusdi81
Дата сообщения: 20.06.2007 06:19
BioInfo

Цитата:
Проверяй на работоспособность:

PlatGTK.cxx: In member function `void Menu::Add(const char*, int, bool)':
PlatGTK.cxx:2532: error: `SString' was not declared in this scope
PlatGTK.cxx:2532: error: expected `;' before "localised"
PlatGTK.cxx:2533: error: `localised' was not declared in this scope
PlatGTK.cxx:2536: error: `SciTEGTK' has not been declared
PlatGTK.cxx:2536: error: `MenuSignal' was not declared in this scope
PlatGTK.cxx:2542: error: `GetApplicationInstance' was not declared in this scope
PlatGTK.cxx:2532: warning: unused variable 'SString'
PlatGTK.cxx:2536: warning: unused variable 'MenuSignal'
PlatGTK.cxx:2542: warning: unused variable 'GetApplicationInstance'

Эти переменные и типы определены, по-моему в SciTEGTK.cxx. По комметариям в коде я понял, что динамически перестраивать меню в ГТК невозможно - отсюда и странный код построения меню.

Автор: vladvro
Дата сообщения: 20.06.2007 10:08
mozers
Цитата:
конечно перестали, зачем надо было убирать код:
liolib.c строка 23
Код:#if !defined(FOX) && !defined(__WX__) && !defined(GTK) && !defined(_MSC_VER)
#define PLAT_WIN 1
#include <windows.h>
#else
#define PLAT_WIN 0
#endif
Установка этого добра на место не принесла никакого эффекта

а установка на место это куда? если в liolib.c то конечно ничего это не даст, ты же функции и условную компиляцию в loslib.c перенес.
попробую объяснить суть проблемы - переменная PLAT_WIN которую мы активно используем в тегах условной компиляции определяется в файле Platform.h, и если этот файл не инклудится, то и переменная неопределена и условие не выполняется. Добавленный мной код сделан на основе кода из Platform.h для решения этой проблемы, т.к. весь файл инклудить сюда незачем.


BioInfo
Цитата:

Цитата: последняя версия скомпиленая с помощью MinGW падает сразу при запуске
Нашел откуда ноги растут. Падает здесь (файл PropSet.cxx):
::CharUpperA(&ch);
Это вообще какой-то пипец, что за шаманство я так и не понял!
Автор: chupakabra
Дата сообщения: 20.06.2007 10:11
mozers

Цитата:
Доработка [FixIndent] закомментирована (т.к. используется statementEnd которого нет в новой версии)

FixIndent.patch - патч для версии 1.74, вернул обратно настройку statement.end. Действительно, в версии 1.73 она никак не использовалась, видимо поэтому автор её убрал в версии 1.74
Автор: mozers
Дата сообщения: 20.06.2007 10:18
BioInfo
Цитата:
Но вот собрал SciTE ru, встаю на начало любой строки (home), нажимаю на shift, нажимаю вперед - не выделяется!
У меня такого бага нет. Для начала отруби все скрипты.

Цитата:
РО не могу заставить работать! Пипец, на переключение файла срабатывает на открытие нет...
Аналогично. Надо чинить...

Цитата:
Работает все в кривь и в кось... Я сдаюсь. Пожалуйста почините
Поконкретнее, пожалуйста. "Москва не сразу строилась..."

Цитата:
Верни обратно минимум в Platform.h и в SingleThreadExtension.cxx
ОК
Автор: BioInfo
Дата сообщения: 20.06.2007 13:23
mozers

Цитата:
У меня такого бага нет. Для начала отруби все скрипты.

А вот у нас с Владом есть, я говорил именно об этом:

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

З.Ы. И скрипты тут не причем.
b[.].........
vladvro

Цитата:
т.е. и в 1.73 .45 не работает, и в последней версии не работает?

Проверяется так: запукаем из под SciTE батник компиляции SciTE и пытаемся перейти на то место где у нас Ворнинг.

Цитата:
ага, верно сдесь, и даже понятно почему - не корректная оптимизация кода с
...
мы вылетаем за границы памяти, пытаясь подсунуть вместо строки указатель на символ

Точняк! Накосячил, я почемуто подумал что можно указатель на символ передать, на самом деле как раз его значение, нужно было так:
return (char)::CharUpperA((char *)static_cast<WORD>(ch));

Цитата:
не понял, почему использование библиотечных функций уже не приветствуется?

Не приветствуется необоснованное расширение кода, код необходимо писать так как будто тот кто его будет читать сумашетший маньяк убийца с возможностью легко подкараулить тебя у подъезда. По этому здесь, да и вообще везде, нужно применять принцип KISS. Т.е. чем проще (меньше кода) тем лучше, на оптимизацию в данном случае наплевать.
Да и с CharUpperA я бы не заморачивался, да только все равно его переносить нужно было, а в MSDN написано что эта функция принимает не только указатель на строку, но и отдельные символы. И соответственно вместо трех строк можно написать одну.

Цитата:
Platform.h для решения этой проблемы, т.к. весь файл инклудить сюда незачем.

Т.е. опятьже, вместо одного инклюда нужно городить огород? Тем более что в платформ уже встроен windows.h

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

Империческим путем выявлена следующая закономерность - баг проявляется если в строке больше 1 буквы, если первым или вторым знаком является скобка, причем закрывающаяся дальше чем на один символ расположена, то выделяется нормально... чудеса. Косяк точно где-то у нас в коде, в оригинальной сборке такого не наблюдается. От лексера похоже не зависит.

Цитата:
читаем внимательно лог:

Ну дык это я первым делом, вторым делом в код полез, а потом думаю нафиг надо...

alrusdi81

Цитата:
Эти переменные и типы определены, по-моему в SciTEGTK.cxx. По комметариям в коде я понял, что динамически перестраивать меню в ГТК невозможно - отсюда и странный код построения меню.

Все это дело подключается так:
#include "SString.h"
#include "SciTEGTK.h"
А к localiser попробуй обратится так GetApplicationInstance()->localiser
На крайняк его совсем выкини от туда
SString localised = localiser.Text(label);
замени на
SString localised = label;
З.Ы. У меня почемуто есть уверенность что динамическое меню в ГТК возможно, тоже самое тулз меню наверняка перестраивается динамически.
Автор: mozers
Дата сообщения: 20.06.2007 13:24
chupakabra
Цитата:
FixIndent.patch - патч для версии
Давай попростче, а?... Опубликуй в форуме код от -start-[FixIndent] до -end-[FixIndent]

Автор: vladvro
Дата сообщения: 20.06.2007 14:14
BioInfo
Цитата:
Проверяется так: запукаем из под SciTE батник компиляции SciTE и пытаемся перейти на то место где у нас Ворнинг.

а если отключаешь опцию:
lexer.errorlist.findliststyle=0
то переходит?
вообще этот переход не всегда возможен, если файл в котором найдены ворнинги не открыт в редакторе и текущий открытый файл не находится рядом (в той же или в соседней дирректории), то файл не открывается.

Цитата:
нужно было так:
return (char)::CharUpperA((char *)static_cast<WORD>(ch));

вот что вычитал я:
Цитата:
For lpsz to specify a single character, the high-order word of the argument must be zero
http://www.globalyzer.com/gi/help/gihelp/unsafeMethod/CharUpper.htm
я в С++ многих тонкостей не знаю, т.ч. даже не могу сказать отвечает ли твой код этому требованию...
но вариант с тремя строчками мне кажется еще и более простым для восприятия (к вопросу о читабельности кода)

Цитата:
Косяк точно где-то у нас в коде, в оригинальной сборке такого не наблюдается.

выявлено что косяк в оригинальном коде, и проявляется при выключеной опции:
selection.alpha
у Нейла она по умолчанию выставлена в 30

Добавлено:

Цитата:

Цитата: Platform.h для решения этой проблемы, т.к. весь файл инклудить сюда незачем.
Т.е. опятьже, вместо одного инклюда нужно городить огород? Тем более что в платформ уже встроен windows.h
Автор: chupakabra
Дата сообщения: 20.06.2007 15:16
mozers
Это как раз простой способ. Патч можно применить к исходникам с помощью команды
patch -p1 < FixIndent.patch
запущенной в каталоге с исходным кодом. После этого можно использовать какое-либо средство визуального сравнения файлов чтобы наглядно увидеть сделанные изменения.

[more=Изменения]
SciTEBase.cxx строка 2925
Код: IndentationStatus SciTEBase::GetIndentState(int line) {
[no]// C like language indentation defined by braces and keywords[/no]
IndentationStatus indentState = isNone;
SString controlWords[20];
unsigned int parts = GetLinePartsInStyle(line, statementIndent.styleNumber,
-1, controlWords, ELEMENTS(controlWords));
for (unsigned int i = 0; i < parts; i++) {
if (includes(statementIndent, controlWords[i]))
indentState = isKeyWordStart;
}
parts = GetLinePartsInStyle(line, statementEnd.styleNumber,
-1, controlWords, ELEMENTS(controlWords));
for (unsigned int i = 0; i < parts; i++) {
if (includes(statementEnd, controlWords[i]))
indentState = isNone;
}
Автор: BioInfo
Дата сообщения: 20.06.2007 16:44
vladvro

Цитата:
вообще этот переход не всегда возможен, если файл в котором найдены ворнинги не открыт в редакторе и текущий открытый файл не находится рядом (в той же или в соседней дирректории), то файл не открывается.

Проверил в оригинальной:
Вот такой открывает
..\src\SciTEBase.cxx(2186) : warning C4702: unreachable code
Вот такие нет
.\SciTEWin.cxx(399) : warning C4702: unreachable code
SciTEWin.cxx(399) : warning C4702: unreachable code
Блин, раньше и не задумывался над тем где в каком каталоге что лежит...
Это что наша доработка была?

Цитата:
выявлено что косяк в оригинальном коде, и проявляется при выключеной опции:
selection.alpha
у Нейла она по умолчанию выставлена в 30

Подтверждаю, однако весьма неприятно!!

Цитата:
я в С++ многих тонкостей не знаю, т.ч. даже не могу сказать отвечает ли твой код этому требованию...

Я тоже
А что по коду то не ясно? Читать так: отдаем char ch в функцию CharUpperA и выдаем то что она вернет (я бы так прочитал: привести символ ch к верхнему регистру и вернуть результат)... А так да, дело вкуса, тут тоже можно до фанатизма дойти, короче все хорошо в меру.

Цитата:
вот ссылка на документацию, для тех кто не боится читать

Как уже говорил "чукча не читатель - чукча писатель"
Так мы будет все организовывать, или где? Когда начнем, тогда и вопросы появятся и может желание документацию почиткать...

Цитата:
а мне вообще не нравится вызов SciTEBase::FillProperty в SciTEBase::Property, как то это не правильно, если на каждый запрос о значении переменной идет целый блок не нужных заполнений значениями переменных, не относящихся к запросу.

Вот мне тоже не нравится... Слишком уж разброс этого кода большой.
Жду конструктивных предложений.
Напомню ввиду чего это все организовалось собственно:
Нужно найти способ получения размеров окна SciTE из луа, а также значения параметров которые можно поменять через меню, в любой момент работы.
Автор: mozers
Дата сообщения: 20.06.2007 17:11
BioInfo
Цитата:
Блин, раньше и не задумывался над тем где в каком каталоге что лежит...
Это что наша доработка была?
Нет. Так работает оригинальный SciTE.
Если относительно текущего файла файл ..\src\SciTEBase.cxx существует, то он - открывается. Если относительно текущего не существует (например у тебя - .\SciTEWin.cxx) - то не открывается.
Так что, когда ты говоришь о том, что у тебя ..\src\SciTEBase.cxx открывается, то это не всегда верно. Результат сильно зависит от того, какой файл у тебя был текущим до щелчка.
Имхо чтобы открывались все файлы в которых попалось предупреждение или ошибка при компиляции, надо чтобы они в консоль выдавали верный относительный путь (или - железное решение - абсолютный).
Т.е. надо переписать mak файлы, объединив оба в один и чтоб объединенный лежал в том же каталоге что и compile.bat - тогда и относительные пути в консоли всегда будут верными - естественно, до той поры пока текущим будет compile.bat.


Добавлено:
Идея: Поскольку все файлы в дистрибутиве SciTE имеют уникальные имена, то можно написать скрипт, который будет искать их по имени, наплевав на неверный относительный путь. Но такое пройдет только при уникальности имен

Добавлено:
Еще:
Вот у меня тоже 1.74 Ru стала вылетать
Причем, стабильно:
Открываем файл (или создаем новый).
Пишем любое слово, которое уже есть в тексте. (Набираем несколько букв - возникает подсказка автозавершения).
Если игнорировать подсказку и набрать это слово до конца - следует стабильный вылет.

Добавлено:
В общем, пока не решена (проблема ворнингов в MinGW) <=> (вылетов в Винде) заниматься другими доработками считаю преступным
Автор: BioInfo
Дата сообщения: 20.06.2007 22:28
mozers

Цитата:
В общем, пока не решена (проблема ворнингов в MinGW)

Ты тут жути нагнал, пришлось по сусекам поскребсти, нарыл у себя MinGW...
Даже откомпилить удалось (спасибо за батник на первой странице).
Вот эта "ужасная, огромная" куча ворнингов:

Цитата:
../src/RESearch.cxx:308: warning: comparison is always true due to limited range of data type

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

Цитата:
../src/FilePath.cxx:32:1: warning: "_WIN32_WINNT" redefined

MinGW подклчает свой какой-то волшебный файл где _WIN32_WINNT определен. Чтобы не ругалось нужно сделать обертку вида: если определен то переопределить.

Цитата:
../src/SciTEBuffers.cxx:1236: warning: NULL used in arithmetic

Тулз меню я перепишу (решение назревало давно)

Цитата:
../src/SciTEProps.cxx:1314: warning: embedded `\0' in format

В чем проблема? Мне нужен там ноль, я получу не то что задумал?

Цитата:
SciTEWin.cxx:136: warning: missing initializer for member `_AppBarData::hWnd'

Ладно, сделаю зеромемори...

Цитата:
../lua/src/lib/loslib.c:64: warning: int format, DWORD arg (arg 4)
../lua/src/lib/loslib.c:64: warning: char format, void arg (arg 5)
../src/SciTEBase.cxx:2313: warning: unsigned int format, long unsigned int arg (arg 3)

Даже хз что такое...

Цитата:
../lua/src/lib/loslib.c:71: warning: type defaults to `int' in declaration of `MAX_CMD'

Говорит что нужно так написать: static const int MAX_CMD = 1024;
Да уж... "проблема ворнингов"...
А так - откомпилилось, работает... правда весит на 32 кг больше, а dll в 2 раза.
Автор: mozers
Дата сообщения: 21.06.2007 09:12
BioInfo
Цитата:
Ты тут жути нагнал
Просто я предположил что ворнинги в MinGW и крушения откомпиленного (неважно в чем) варианта - взаимосвязаны.
Это - лишь предположение, поскольку нейловский код компилится в MinGW без ворнингов и откомпиленный вариант не вылетает.
Сейчас, правда, и SciTE-Ru у меня не вылетает, но пришлось отказаться от autocompleteword.automatic, OnMenuCommand, OnSendEditor,...
Так тоскливо, билин ((

Страницы: 1234567891011121314151617181920212223242526

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


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