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

» SciTE - Open Source Text Editor for Windows & Linux

Автор: gamers hater
Дата сообщения: 16.05.2008 22:04
приветствую всех!
у меня проблема с turbo pascal.

вобщем в настройках pascal.properties прописываю (предварительно закомментировав остальные команды компиляции):

command.compile.*.pas=C:\TP7\BIN\TPC $(FilePath)

но SciTE сам туроб паскаль даже не запускает

а проверял так (по-идее SciTE должен был запустить TP):
command.compile.*.pas=C:\TP7\BIN\TPC dummy.pas

где dummy.pas - это:
program dummy;
begin
end.

если набрать тоже самое в коммандной строке (cmd):

C:\TP7\BIN\TPC dummy.pas, программа dummy компилится

где моя ошибка? подскажите, пожалуйста.

зарание спасибо!
Автор: iglezz
Дата сообщения: 17.05.2008 14:08
gamers hater
$(FilePath) есть полный путь к файлу, вместо него надо ставить $(FileNameExt) (или $(FilePath)\$(FileNameExt) в крайнем случае)

Описание этих переменных есть тут

Примеры также можно подсмотреть в других .properties-файлах
Автор: Firemanser
Дата сообщения: 17.05.2008 21:07
Тут небольшая проблема возникла.
Недавно поставил сборку 1.76 (до этого сидел под 1.74).
74-я умела комментировать/раскомментировать строки кода PHP нажатием слеша с выделением.

//~ echo 'Hello world';
выделил строку и нажал слеш, стало
echo 'Hello world';

В версии 1.76 эта возможность пропала, теперь вместо добавления "//~" в начало выделенной строки скайт заменяет выделенную строку на "/".

Можно ли это как-то исправить?
Автор: BioInfo
Дата сообщения: 17.05.2008 23:44
Firemanser
В файле SciTEStartup.lua
Раскомментируйте строку:
dofile (props["SciteDefaultHome"].."\\tools\\smartcomment.lua")
И закомментируйте строку:
dofile (props["SciteDefaultHome"].."\\tools\\xComment.lua")


Добавлено:
rank1

Цитата:
Воистину сила в OpenSource ))) !!!

Если найдете свободного времени в помощь, то будем очень рады. Скриптописатли всегда нужны! Пожелания по скриптам имеются, ну и свои наработки тоже выкладывайте Все таки OpenSource двухсторонний процесс.

Добавлено:
Выставляю на суд благородной общественности первый форматер кода для lua.
К сожалений нет времени довести его до ума, по этому прикрутите плиз кто может его чтобы выводи результат не в консоль, а заменял выделенный текст и строку подключения допишите. У меня пока нет времени. Работает это так: выделяем код скрипта луа, запускаем этот скрипт, на выходе чистенько отформатированный выделенный код скрипта (под форматированием понимается расстановка пробелов знаков переноса и пр...)
З.Ы. Сам язык LUA довольно сложный по оформлению (могут отсутствовать признаки конца цепочки (точка запятой в конце команды), так что могут быть баги, о которых прошу сообщить в эту ветку.
formatter.lua : [more]
Код: [no]-- Форматер кода для LUA
-- Автор: Маслов Дмитрий
--
-- Принцип действия:
-- Текст разбивается на лексемы (слова)
-- Лексемы выстраивыаются нужным образом
--
-- В планах развития:
-- 1. Формирование вертикальных блоков функции и условий при достижении правой границы
-- 2. Отступы между блоками функций
-- 3. Установка второго стиля кода, когда начало блока не отделяется новой строкой
-- 4. Портировать форматер на лексер С++
-- 5. Не разворачивать блоки if exp then param end, если блок из одного параметра
-- .. Добавить кучу настроек под нужды общества
---------------------------------------------------------------------------------------

-- Стиль для блоков
--
-- Стиль № 0
--* имя блока
--* do
--* ...
--* end
--
-- Стиль № 1
--* имя блока do
--* ...
--* end
[/no]
local block_style = 0;

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

local function GetEOL()
local eol = "\r\n"
if editor.EOLMode == SC_EOL_CR then
eol = "\r"
elseif editor.EOLMode == SC_EOL_LF then
eol = "\n"
end
return
eol
end

-- возвражает количество слов найденных в тексте и таблицу с ними
local function GetLexemas( text )
local result = {};
local count = 0;
local pos = 0;
local text_len = string.len( text );
while true
do
-- убираем пробелы в начале
while ( pos < text_len )
do
local
char = string.char( text:byte( pos+1 ) );
if ( char == " " or char == "\t" or char == "\r" or char == "\n" )
then
pos = pos + 1;
else
break
;
end
end
-- проверка на конец
if ( pos == text_len ) then break; end
-- собираем лексему
local one_word = string.char( text:byte( pos + 1 ) );
local double_word = one_word..string.char( text:byte( pos + 2 ) );
local threed_word = double_word..string.char( text:byte( pos + 3 ) );
local q_word = threed_word..string.char( text:byte( pos + 4 ) );
-- 1. Проверяем трех составные слова: ...
if ( threed_word == '...' )
then
-- сохраняем слово в таблицу
count = count + 1;
result[ count ] = threed_word;
pos = pos + 3;
else
-- 2. Проверяем двусоставные слова: .. | <= | >= | == | ~=
if ( double_word == '..' or
double_word == '<=' or
double_word == '>=' or
double_word == '==' or
double_word == '~=' )
then
-- сохраняем слово в таблицу
count = count + 1;
result[ count ] = double_word;
pos = pos + 2;
else
-- 3. Проверяем комментарий: --[[ | --
local isComment = false;
local comment_end = '';
if ( q_word == '--[[' ) -- потоковй комментарий
then
isComment = true;
comment_end = ']]';
elseif ( double_word == '--' ) -- строчный комментарий
then
isComment = true;
end
if
( isComment == true )
then
-- отделяем комментарий
local comment = '';
if ( comment_end:len() == 0 ) -- по концу строки
then
while true
do
pos = pos + 1;
if ( pos == text_len ) then break; end
local
char = string.char( text:byte( pos ) )
if ( char == "\n" or char == "\r" ) then break; end
comment = comment..char;
end
else
while true
do
pos = pos + 1;
if ( pos == text_len ) then break; end
local
char1 = string.char( text:byte( pos ) )
local char2 = string.char( text:byte( pos + 1 ) )
comment = comment..char1;
if ( comment_end == char1..char2 )
then
comment = comment..char2;
pos = pos + 1;
break;
end
end
end
-- сохраняем слово в таблицу
count = count + 1;
result[ count ] = comment;
else
-- 4. Проверяем текстовое поле: " | '
local text_end = '';
if ( one_word == '\'' ) then text_end = '\''; end
if
( one_word == '\"' ) then text_end = '\"'; end
if
( text_end ~= '' )
then
local
text_field='';
while true
do
pos = pos + 1;
if ( pos == text_len ) then break; end
local
char = string.char( text:byte( pos ) )
local char_prev = string.char( text:byte( pos - 1 ) )
local char_prev_prev = string.char( text:byte( pos - 2 ) )
text_field = text_field..char;
if ( char == text_end and text_field ~= text_end and ( char_prev ~= '\\' or char_prev_prev == '\\' ) ) then break; end
end
-- сохраняем слово в таблицу
count = count + 1;
result[ count ] = text_field;
else
-- 5. Проверяем односоставные слова
if ( one_word == '+' or
one_word == '-' or
one_word == '*' or
one_word == '/' or
one_word == '%' or
one_word == '^' or
one_word == '#' or
one_word == ';' or
one_word == ':' or
one_word == ',' or
one_word == '.' or
one_word == '(' or
one_word == ')' or
one_word == '{' or
one_word == '}' or
one_word == '[' or
one_word == ']' or
one_word == '=' or
one_word == '<' or
one_word == '>' )
then
pos = pos + 1;
-- сохраняем слово в таблицу
count = count + 1;
result[ count ] =one_word;
else
-- 6. Проверяем остальные слова
local word = '';
while ( pos < text_len )
do
local
char = string.char( text:byte( pos + 1 ) );
if ( char == '+' or
char == '-' or
char == '*' or
char == '/' or
char == '%' or
char == '^' or
char == '#' or
char == ';' or
char == ':' or
char == ',' or
char == '.' or
char == '(' or
char == ')' or
char == '{' or
char == '}' or
char == '[' or
char == ']' or
char == '=' or
char == '<' or
char == '>' or
char == ' ' or
char == '\'' or
char == '\"' or
char == '~' or
char == "\n" or
char == "\r" )
then
break
;
else
word = word..char;
end
pos = pos + 1;
end
-- сохраняем слово в таблицу
count = count + 1;
result[ count ] = word;
end
end
end
end
end
end
return
count, result;
end

-- Получить отступ в строке
local function GetLineIndentation( num_line )
if ( num_line < 0 ) then num_line = 0 end
if
( num_line >= editor.LineCount ) then num_line = editor.LineCount - 1 end
return
( editor.LineIndentation[num_line] / editor.Indent )
end

--[lua] Расчет начала блока в lua - блока функции
local isFunctionBlockBeginLua = false;
local lastParamBlockBeginLua = '';
local function IsBlockBeginLua( str )
local result = false;
if ( str == 'function' ) then isFunctionBlockBeginLua = true; end
if
( lastParamBlockBeginLua == ')' and str ~= ')' ) then isFunctionBlockBeginLua = false; end
if
( str == ')' ) then result = isFunctionBlockBeginLua; end
lastParamBlockBeginLua = str;
return result;
end

--[lua] Расчет конца вырожения в lua - может не оканчиватся точкой с запятой
local lastParamNewLineBeforLua = nil;
local function IsNewLineBeforLua( str )
local ret = false
if
( str ~= nil and lastParamNewLineBeforLua ~= nil )
then
if
( str ~= '+' and
str ~= ')' and
str ~= '}' and
str ~= ']' and
str ~= '-' and
str ~= '*' and
str ~= '/' and
str ~= '^' and
str ~= '%' and
str ~= '..' and
str ~= '<' and
str ~= '<=' and
str ~= '>' and
str ~= '>=' and
str ~= '==' and
str ~= '~=' and
str ~= '[' and
str ~= '{' and
str ~= '(' and
str ~= ';' and
str ~= '.' and
str ~= ',' and
str ~= ':' and
str ~= '=' and
str ~= 'do' and
str ~= 'else' and
str ~= 'repeat' and
str ~= 'then' and
str ~= 'until' and
str ~= 'in' and
str ~= 'and' and
str ~= 'or' and
str ~= '...' ) and
( lastParamNewLineBeforLua ~= '+' and
lastParamNewLineBeforLua ~= 'do' and
lastParamNewLineBeforLua ~= 'else' and
lastParamNewLineBeforLua ~= 'elseif' and
lastParamNewLineBeforLua ~= 'for' and
lastParamNewLineBeforLua ~= 'function' and
lastParamNewLineBeforLua ~= 'if' and
lastParamNewLineBeforLua ~= 'local' and
lastParamNewLineBeforLua ~= 'not' and
lastParamNewLineBeforLua ~= 'repeat' and
lastParamNewLineBeforLua ~= 'return' and
lastParamNewLineBeforLua ~= 'then' and
lastParamNewLineBeforLua ~= 'until' and
lastParamNewLineBeforLua ~= 'while' and
lastParamNewLineBeforLua ~= '-' and
lastParamNewLineBeforLua ~= '-' and
lastParamNewLineBeforLua ~= '-' and
lastParamNewLineBeforLua ~= '*' and
lastParamNewLineBeforLua ~= '/' and
lastParamNewLineBeforLua ~= '^' and
lastParamNewLineBeforLua ~= '%' and
lastParamNewLineBeforLua ~= '..' and
lastParamNewLineBeforLua ~= '<' and
lastParamNewLineBeforLua ~= '<=' and
lastParamNewLineBeforLua ~= '>' and
lastParamNewLineBeforLua ~= '>=' and
lastParamNewLineBeforLua ~= '==' and
lastParamNewLineBeforLua ~= '~=' and
lastParamNewLineBeforLua ~= '[' and
lastParamNewLineBeforLua ~= '{' and
lastParamNewLineBeforLua ~= '(' and
lastParamNewLineBeforLua ~= ';' and
lastParamNewLineBeforLua ~= '.' and
lastParamNewLineBeforLua ~= ',' and
lastParamNewLineBeforLua ~= ':' and
lastParamNewLineBeforLua ~= '=' and
lastParamNewLineBeforLua ~= 'in' and
lastParamNewLineBeforLua ~= 'and' and
lastParamNewLineBeforLua ~= 'or' and
lastParamNewLineBeforLua ~= '...' )
then
ret = true;
end
end
lastParamNewLineBeforLua = str;
return ret;
end

-- начало блока?
local function IsBlockBeginLang( str )
return str =='do' or str == 'repeat' or str == 'then' or str == 'else';
end

local function
IsBlockBegin( str )
return IsBlockBeginLang( str ) or IsBlockBeginLua( str );
end

-- конец блока?
local function IsBlockEnd( str )
return str == 'end' or str == 'until' or str == 'elseif' or str == 'else';
end

-- это комментарий?
local function IsComment( str )
return str ~= nil and str:sub( 1, 2 ) == '--';
end

-- это вплотную прилигающее слово?
local function IsLeftSidedWord( str )
return str == ';' or str == '(' or str == ',' or str == '.' or str == '[' or str == '..' or str == ':';
end

-- после этого слова нужно всегда делать отступ?
local function IsLeftNoSidedWord( str )
return str == 'or' or str == 'and' or str == 'not' or str == 'for' or str == 'if' or
str == 'while' or str == 'return' or str == 'elseif';
end

-- после этого слова не нужно делать отступ?
local function IsRightSidedWord( str )
return str == '..' or str == '.' or str == ':';
end

-- с этого слова начинается строка?
local function IsNewLineBefor( str )
return str == 'local' or str == 'for' or str == 'if' or str == 'while' or str == 'function' or
str == 'return' or str == 'break' or
( block_style == 0 and IsBlockBeginLang( str ) ) or
IsBlockEnd( str ) or
IsComment( str );
end

-- после этого слова начинается строка?
local function IsNewLineAfter( str )
return str == ';' or
IsBlockBegin( str ) or
str == 'end' or
IsComment( str );
end

-- MAIN --

local sel_start = editor.SelectionStart;
local sel_end = editor.SelectionEnd;
local line_start = editor:LineFromPosition( sel_start ) + 1;
local line_indent = GetLineIndentation( line_start );
-- Если ничего не выделено, то берем весь текст
if sel_start == sel_end
then
--[[тест]]
line_start = 0
sel_start = 0
sel_end = editor:PositionFromLine( editor.LineCount );
line_indent = 0;
end

local
line_indent = GetLineIndentation( editor:LineFromPosition( editor.SelectionStart ) );
local text, lenght = editor:GetSelText();
local count, tbl = GetLexemas(text);
local out_text = '';
local curr_line_indent = line_indent;
local in_new_line = true;
for i = 1, count
do
local
lexBefor = tbl[ i - 1 ];
local lexCurr = tbl[ i ];
local lexNext = tbl[ i + 1 ];

-- нужен ли пробел?
local word_prefix = ' ';
if ( IsLeftSidedWord( lexCurr ) and not IsLeftNoSidedWord( lexBefor ) ) or
( in_new_line == true ) or
( IsRightSidedWord( lexBefor ) )
then
word_prefix = '';
end

-- вставлять ли новую строку?
local paste_new_line = IsNewLineBeforLua( lexNext ) or
IsNewLineAfter( lexCurr ) or
( not IsNewLineBefor( lexCurr ) and IsNewLineBefor( lexNext ) );
if IsBlockBegin( lexCurr ) then curr_line_indent = curr_line_indent + 1; end
if
IsBlockEnd( lexNext ) and ( curr_line_indent > 0 ) then curr_line_indent = curr_line_indent - 1; end

out_text = out_text..word_prefix..lexCurr;
in_new_line = false;
if ( paste_new_line == true )
then
out_text = out_text..GetEOL()..string.rep( ' ', curr_line_indent );
in_new_line = true;
end
end
print( out_text );

Автор: mozers
Дата сообщения: 18.05.2008 09:14
Firemanser
Цитата:
//~ echo 'Hello world';
выделил строку и нажал слеш, стало
echo 'Hello world';
Вот убей меня, не пойму. Неужели нажать Ctrl+Q - сложнее???


Добавлено:
BioInfo
Code Poster - поправлю, а символ табуляции лучше записывать как \t.

Добавлено:
BioInfo
Цитата:
оформил не верно - курсив закрывает вперед цвета
Использую:
-- Code Poster 2
-- Version: 2.1
Также не отрабатывается наличие скобой квадратных в тексте
Проверил:
Взял твой код. Преобразовал его CodePoster. Запостил. Скопировал код из форума. Убрал как обычно пробелы в концах строк. Сохранил. Сравнил с исходником. Все 1:1 (за исключением смайлика в 14 строке - тут уж, извините, ничего не поделаешь).
Так что если действительно в CodePoster имеется какая то ошибка, то прошу описать ее более подробно с наглядным и коротким примером.

Зачем вы в Lua коде ; на концах строк ставите ???

Добавлено:
gamers hater
Открой файл.pas в SciTE. Открой консоль (F8). Напиши в ней "C:\TP7\BIN\TPC $(FilePath)" (без кавычек).
Что выдает?

Добавлено:
ALL
Обнаружил недокументированную нигде фитчу SciTE:
1. Открываем окно консоли (F8)
2. Пишем в ней $(
3. ... (сами увидите
Автор: Firemanser
Дата сообщения: 18.05.2008 11:22
mozers,

Цитата:
Firemanser
Цитата://~ echo 'Hello world';
выделил строку и нажал слеш, стало
echo 'Hello world';

Вот убей меня, не пойму. Неужели нажать Ctrl+Q - сложнее???


В PHP эта команда бесполезна, она добавляет
"<!-- -->"
Но все равно спасибо, в хтмл пригодится.

BioInfo, ваш способ почти работает.


Цитата:
Firemanser
В файле SciTEStartup.lua
Раскомментируйте строку:
dofile (props["SciteDefaultHome"].."\\tools\\smartcomment.lua")
И закомментируйте строку:
dofile (props["SciteDefaultHome"].."\\tools\\xComment.lua")


Но при нажатии слеша происходит следующее:

Код: //~ $query .= "Host: www.yandex.ru\r\n\r\n";
Автор: unreal666
Дата сообщения: 18.05.2008 11:27

Цитата:
Обнаружил недокументированную нигде фитчу SciTE:

И что должно быть?
У меня после этого просто пишет "Не удается найти указанный файл"
Автор: mozers
Дата сообщения: 18.05.2008 15:35
Firemanser
Цитата:
В PHP эта команда бесполезна, она добавляет
"<!-- -->"
Это происходит если выделить поток текста. Если выделить строку (строки) или вообще ничего не выделять, то будет установлен/снят строковый комментарий //.
(Потоковое выделение отличается от строкового тем, что курсор находится внутри выделения).

Цитата:
ру-борд автоматически преобразовывает строки вида www.yandex.ru\r\n\r\n"; в ссылки. Как это отменить?
Попробовал вставить текст в тегах [ no ] - не помогает. Имхо - никак.

unreal666
Цитата:
У меня после этого просто пишет "Не удается найти указанный файл"
Не... Enter нажимать не надо. Просто у меня (да и в оригинальной версии SciTE - тоже) после ввода $( появляется раскрывающийся список внутренних переменных SciTE. Откуда он такой берется???
Автор: Firemanser
Дата сообщения: 18.05.2008 16:05

Цитата:
Firemanser
Цитата:В PHP эта команда бесполезна, она добавляет
"<!-- -->"

Это происходит если выделить поток текста. Если выделить строку (строки) или вообще ничего не выделять, то будет установлен/снят строковый комментарий //.
(Потоковое выделение отличается от строкового тем, что курсор находится внутри выделения).

Дело в том, что комментируют обычно несколько строк сразу (поток), а не одну.
Я вот заметил, что в версиях 1.74 и 1.76 разные виды комментариев. В 74й это "//~ ", а в 76й- "// ".
В 74 я работал полгода, теперь мне долго придется привыкать. К тому же у меня много скриптов со старым видом комментариев. Теперь все придется переписывать?
Автор: mozers
Дата сообщения: 18.05.2008 21:33
Firemanser
Цитата:
Дело в том, что комментируют обычно несколько строк сразу (поток), а не одну

Выделяем блок с клавиатуры:
Курсор - в начало строки (Home)
потом - Shift+Курсор вниз
Выделяем блок с помощью мыши:
С зажатой левой кнопой проводим по колонке где отображаются номера строк.
Или ставим курсор в начало строки и с зажатой левой кнопой двигаем мышь вниз (не смещая ее вправо).

Выделяем поток с клавиатуры:
Shift+Курсор вправо/влево. Не отпуская Shift можно расширить выделение курсорными вверх/вниз.
Выделяем поток с помощью мыши:
С зажатой левой кнопой проводим по строке (строкам).

Обратите внимание, что при выделении блока курсор будет находиться на строку ниже или выше выделения.
При выделении потока курсор будет находится у левого или правого края выделения.

Скрипт xComment.lua различает эти выделения и в зависимости от того что выделено ставит/снимает либо блочный либо потоковый комментарий.

Добавлено:

Цитата:
Я вот заметил, что в версиях 1.74 и 1.76 разные виды комментариев
Какие заданны в настройках - такие и есть. Раньше (до xComment.lua) комментарии без тильды не могли нормально ставится/сниматься по Ctrl+Q . Сейчас можно использовать и с тильдой и без. Ты можешь поменять в настройках.

Цитата:
К тому же у меня много скриптов со старым видом комментариев. Теперь все придется переписывать?
А зачем ???
Автор: Firemanser
Дата сообщения: 18.05.2008 22:12

Цитата:
Какие заданны в настройках - такие и есть. Раньше (до xComment.lua) комментарии без тильды не могли нормально ставится/сниматься по Ctrl+Q . Сейчас можно использовать и с тильдой и без. Ты можешь поменять в настройках.


В каком файле находятся эти настройки? Укажите строку, пожалуйста.
А вообще, можно ли переписать скрипт, чтобы комментарий с тильдой и без тильды распознавался и удалялся корректно? Если бы скрипты были JS, я бы сам разобрался.

mozers, есть ссылка на мануал по .lua файлам?
Автор: mozers
Дата сообщения: 19.05.2008 00:11
Firemanser
Цитата:
В каком файле находятся эти настройки?
Для php - в html.properties (217 строка).

Цитата:
можно ли переписать скрипт, чтобы комментарий с тильдой и без тильды распознавался и удалялся корректно?
Скрипту xComment.lua пофиг как записан комментарий (с тильдой или без). По Ctrl+Q он удалит любой. Повторное нажатие Ctrl+Q закомментирует строку, блок или поток (в зависимости от того что выделено) тем комментарием, который задан в настройках текущего языка.

Цитата:
есть ссылка на мануал по .lua файлам
lua-5.1rus.chm В сборке он подключен. Достаточно выделить непонятный оператор в lua файле и нажать F1.
Автор: aha
Дата сообщения: 19.05.2008 01:54
если кому интересно тут
_http://www.filefactory.com/file/5f313c/
64 битная сборка 1.76 ( на 64 битной системе работает значительно быстрее 32 битной с большими файлами)
Автор: Firemanser
Дата сообщения: 19.05.2008 06:37
mozers, спасибо!
Оказывается, у скайта есть такие возможности, о которых я даже не подозревал. Буду разбираться.

aha, как русифицировать 64битную версию?
Автор: aha
Дата сообщения: 19.05.2008 08:49

Цитата:
aha, как русифицировать 64битную версию?

Restorator 2007 поможет
Автор: mozers
Дата сообщения: 19.05.2008 13:15
Firemanser aha
А что, в 64битной версии locale.properties уже не работает что ли ???
Автор: vladvro
Дата сообщения: 19.05.2008 17:13
rank1

Цитата:
Если данная версия будет стабильно работать в течения пары месяцев, можно потом эти изменения будет внести в основную версию?

Работать она должна стабильно, проблема не в этом, она будет кушать больше памяти.
Пока не могу сказать на сколько больше, надо изучить, потестировать.
Если необходимость в таком большом количестве групп отпадет (а мне кажется это весьма вероятным , т.к. на мой взгляд сложно создать такое количество различий стилей, так что бы в них не путаться), то, ограничившись скажем 20 группами, можно будет внести изменения в основную версию.

mozers

Цитата:
Зачем вы в Lua коде ; на концах строк ставите ???

тем кто писал на C/C++ или PHP, так нагляднее, глазу проще ловить окончание операции.
да и просто рефлекс на завершение строки - написал оператор, поставь завершающую ;

Цитата:
Обнаружил недокументированную нигде фитчу SciTE:
1. Открываем окно консоли (F8)
2. Пишем в ней $(

ага, есть такое в коде
SciTEBase.cxx [строка 3651] : [more]
Код: // Potential autocompletion of symbols when $( typed
int selStart = SendOutput(SCI_GETSELECTIONSTART);
if ((
selStart > 1) && (SendOutput(SCI_GETCHARAT, selStart - 2, 0) == '$')) {
SString symbols;
char *
key = NULL;
char *
val = NULL;
bool
b = props.GetFirst(&key, &val);
while (
b) {
symbols.append(key);
symbols.append(") ");
b = props.GetNext(&key, &val);
}
StringList symList;
symList.Set(symbols.c_str());
char *
words = symList.GetNearestWords("", 0, true);
if (
words) {
SendOutputString(SCI_AUTOCSHOW, 0, words);
delete []
words;
}
Автор: aha
Дата сообщения: 19.05.2008 22:46

Цитата:
Firemanser aha
А что, в 64битной версии locale.properties уже не работает что ли ???

я скомпилил 64 битную версию, особо не разбирался с переводом( у думаю будут проблемы с плагинами-т.к. нужны 64 битные),т.к. искал быстрый текстовый редактор для редактирования больших файлов- 100-200МБ...перепробовал несколько( Akelpad , Notepad++ , 32 битный SciTE)- все они жутко тормозят- невозможно работать с ними, поэтому ради эсперемента собрал голый SciTE 64 битный- он побыстрее оказался, но все равно плюнул я на них- самый быстрый для моих задач EmEditor Professional(64bit ) 7.00.6( а новый 7.00.7 вообще в 2 - 8!!! раз быстрее 7.00.6) так он такие файлы влет открывает и редактирует как-будто они в пару килобайт)...
В связи с чем заявляю, что 64 битная сборка SciTE мной в дальнейшем не будет развиваться..нет смысла-тормозной там движок-надо все переписывать...но есть готовый рабочий EmEditor
Автор: co6aka py
Дата сообщения: 22.05.2008 07:37
Добрый день! Как в добавить новый язык?
Язык RSL … что-то среднее между Pascal и VB … Использует файлы с расширением .mac

Добавил руками новый файл rsl.properties. Взяв за основу файл от VB.
Добавил в разделы файла SciTEGlobal.properties
[Open] - *.mac
[Language] - RSL|mac||\
[Languages] - import languages\rsl

В сам файл rsl.properties добавил
file.patterns.rsl=*.mac
filter.rsl=RSL Macros (mac)|*.mac|
lexer.$(file.patterns.rsl)=rsl
keywordclass.rsl=\

functionclass.rsl=\

keywordclass.rsl=$(keywordclass.rsl) $(functionclass.rsl)
keywords.$(file.patterns.rsl)=$(keywordclass.rsl)
и поправил соответственно стили
style.rsl.32=
style.rsl.0=$(colour.whitespace)

style.rsl.12=fore:#FF8000

Но при открытии файла макроса секст кода серый. (( что я сделал неправильно ?
Автор: vladvro
Дата сообщения: 22.05.2008 13:57
co6aka py

Цитата:
Как в добавить новый язык?
Язык RSL … что-то среднее между Pascal и VB … Использует файлы с расширением .mac

Добавил руками новый файл rsl.properties. Взяв за основу файл от VB.
...

ошибка в этой строке:

Код: lexer.$(file.patterns.rsl)=rsl
Автор: nitr perl
Дата сообщения: 23.05.2008 01:11
Есть предложение включить в скрипт smartbraces.lua (автозакрытие скобок), кроме спец.закрытия скобки '{' для С++, ещё и для Perl.
т.е. строку

Код:
                    -- по волшебному обрабатываем скобку { в cpp
                    if ( char == '{' ) and ( editor.LexerLanguage == 'cpp' ) then
Автор: Moon_aka_Sun
Дата сообщения: 25.05.2008 09:27
Или не было, или я забыл, подскажите, пожалуйста -- в SciTE или в расширениях есть возможность подсветить (раскрасить) заданные слова, примерно так, как это делает Maxthon?
Автор: mozers
Дата сообщения: 25.05.2008 10:13
Moon_aka_Sun
Произвольный текст (имея только начальную и конечную его позицию)
- нельзя выделить произвольным стилем;
- можно выделить маркером (пример - FindText.lua)
Автор: dB6
Дата сообщения: 25.05.2008 17:48
Moon_aka_Sun

Цитата:
Или не было, или я забыл, подскажите, пожалуйста -- в SciTE или в расширениях есть возможность подсветить (раскрасить) заданные слова, примерно так, как это делает Maxthon?

Переделывал я скрипт FindText.lua для подсветки заданного списка слов. Могу поделиться.
Автор: Moon_aka_Sun
Дата сообщения: 26.05.2008 05:01
mozers

Цитата:
можно выделить маркером

dB6

Цитата:
Могу поделиться

Спасибо. Будете смеяться, но оказалось проще самому
Автор: GalielO
Дата сообщения: 28.05.2008 17:45
Просветите неуча, пожалуйста. Программированием занимался на Spectrum-е, так что человек я далёкий. Есть два файла с расширением luac, в одном из них имеем русский текст в другом немецкий (нужно заменить на русский), при просмотре в total commander (Lister), блокнотом, emEditor-ом всё отображается нормально (я вижу русский текст). Открыв их в SciTE вместо русского вижу d7 f2 ee и тд. Я бы правил в emEditor-е, но он при открытии предлагает заменить 00hex на пробелы . Как в SciTE включить отображение русского?
Автор: vladvro
Дата сообщения: 29.05.2008 10:24
GalielO

Цитата:
Как в SciTE включить отображение русского?

Очевидно проблема с кодировкой, вероятно SciTE решил что файл в UTF-8 кодировке (отображается внизу, в строке состояния), значит надо вернуть к win-1251, для чего выбрать в меню Файл -> Кодировка -> заданная настройкой code.page
Автор: GalielO
Дата сообщения: 29.05.2008 10:57
vladvro Спасибо огромное. Появился следующий вопрос. При изменении файла пишет, что-то с компиляцией. Его сначала нужно декомпилировать? Как? Скачал luadec, а синтаксис не знаю.?
Автор: vladvro
Дата сообщения: 29.05.2008 12:52
GalielO

Цитата:
При изменении файла пишет, что-то с компиляцией. Его сначала нужно декомпилировать?

Пожалуйста подробнее, лучше по шагам, что делаешь, что хочешь получить. И желательно выложить файл.
Автор: Sumato
Дата сообщения: 29.05.2008 15:00
GalielO

Цитата:
Его сначала нужно декомпилировать?

Попробуй(те), раз уж есть декомпилятор.
luadec -d ваш_файл.luac > ваш_файл.lua
Ключ -d не обязателен, если не интересны подробности процесса.
То, что будет на выходе -- правьте в SciTE.
Если у luadec ничего не выйдет -- что ж: ищите исходник или, в крайнем случае, правьте строки каким-нибудь hex-редактором (только не текстовыми Блокнотом/SciTE/EmEditor и т.п., чтобы не порушить бинарник).
P.S. Кстати, по идее, после правки это дело нужно вновь cкомпилировать. Для этого нужен luac. Есть? Если нет -- можно попробовать просто изменить расширение на .luac, возможно, этого будет достаточно (lua-то всё-равно поймёт, что ему подсунули, согласится ли на это приложение -- вот вопрос).

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

Предыдущая тема: Universal Share Downloader


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