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

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

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


Автор: 0Vovan0, Отправлено:01:38 12-05-2008

Цитата:
Для начала закомметнируй строку SciTEGlobal.properties [строка 1513] :
Код:ext.lua.startup.script=$(SciteDefaultHome)\tools\SciTEStartup.lua

не помогло
Любопытно то что если набирать чтото в начале файла то тормозов нет или почти нет, в конце - сразу чуствуется. Походу изза этого и казалось что тормоза через 10-15 минут появляются
Автор: Midas, Отправлено:11:27 12-05-2008
Здравствуйте всем!
Возникла следующая проблема:
Я использую SciTE на многих комп-х и нужно чтобы команды Build,Compile,Run,Help работали с разными путями; со всеми Я разобрался (вызов BAT'ника), кроме Help'а.
Собственно вопрос: как в запущенном Scite прописать (через Lua) путь к Help'у ?
Я пробовал прописать в SciTEStartup.lua:

Код:

command.help.$(file.patterns.ahk)=$(CurrentWord)!$(autohotkeydir)\AutoHotkey.chm

Но SciTE обрабатывает $(CurrentWord) как текущее слово в момент выполнения команды.
Можно конечно положить Help в папку SciTE, но это не удобно...
Какие могут быть еще решения проблемы ?
Автор: vladvro, Отправлено:13:49 12-05-2008
0Vovan0

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

Странно, что в конце их больше, мне думалось, что должно быть иначе.
И притормаживание у меня начинает наблюдаться где-то на 300 Кб файле, а не на 10 Кб (у меня P4 3GHz и WinXP).

Midas

Цитата:
Я использую SciTE на многих комп-х и нужно чтобы команды Build,Compile,Run,Help работали с разными путями; со всеми Я разобрался (вызов BAT'ника), кроме Help'а.
Собственно вопрос: как в запущенном Scite прописать (через Lua) путь к Help'у ?

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

Код:
props[[no]"command.help."[/no]..props[[no]"file.patterns.ahk"[/no]]]=[no]"\$\(CurrentWord)!\$\(autohotkeydir)\\AutoHotkey.chm"[/no]


Цитата:
Я пробовал прописать в SciTEStartup.lua:
Код:
command.help.$(file.patterns.ahk)=$(CurrentWord)!$(autohotkeydir)\AutoHotkey.chm

вот это мне не понятно, это не Луа, а значит и работать не будет.

Автор: Midas, Отправлено:15:55 12-05-2008
vladvro
Спасибо!
Я нашел как лучше всего реализовать:

Код:

Portable.lua

Код:
[no]--~ command.help.$(file.patterns.ahk)=$(CurrentWord)!$(autohotkeydir)\AutoHotkey.chm[/no]
function FileExist(FN)
local Result = io.open(FN, [no]"rb"[/no])
if Result then
io.close(Result)
end
return Result
end

if not FileExist(props[[no]"autohotkeydir"[/no]] .. [no]"\\AutoHotKey.chm"[/no]) then
if FileExist([no]"P:\\Progs\\AHK\\AutoHotKey.chm"[/no]) then
props[[no]"autohotkeydir"[/no]]=[no]"P:\\Progs\\AHK"[/no]
else
props[[no]"autohotkeydir"[/no]]=[no]"S:\\Progs\\AHK"[/no]
end
end


Данный код внедрен в форум с помощью скрипта vladvro

Автор: rank1, Отправлено:13:53 16-05-2008
Всем привет!

Большая просьба команде разработки - увеличить количество слотов под ключевые слова в VB лексере.

В VB лексере всего 12 классов ключевых слов - из них 3 свободны для переопределения, этого явно не хватает для изощренной настройки custom подсветки. У нас в организации АБС использует VB скрипты, очень много написано своих функций, которые живут в хедер файлах (у нас самописный препроцессор). Хотелось бы разные категории функций подсвечивать по-разному и не иметь ограничения по к-ву стилей - скажем если бы их было штук 100.
А лучше чтобы к-во стилей определялось по количеству директив в файле настроек само.
keywords104 = ... - чтобы по номеру мах к-во определялось.

keywords2.$(file.patterns.vb)=$(keywordclass.fenix1)
keywords3.$(file.patterns.vb)=$(keywordclass.fenix2)
keywords4.$(file.patterns.vb)=$(keywordclass.fenix3)
...
keywords50

Если такое изменение возможно - большая просьба - если кто может - выложите перекомпилированную версию.


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

Заренее спасибо.

Автор: vladvro, Отправлено:14:36 16-05-2008
rank1

Цитата:
Большая просьба команде разработки - увеличить количество слотов под стили в VB лексере.
...

Динамическое доопределение не возможно.
Добавить стилей можно, но не более суммарного количества в 128 стилей. Но еще потребуется добавить поддержку такого же количества списков ключевых слов, а вот как после этого поведет себя редактор, я судить не берусь. Можно попробовать только в виде эксперементальной версии.

Цитата:
И второе - заметил такую штуку, когда делал скрипт под скайт, для подстановки инклудников. Если функцией setText в новый буффер добавлять кусочками порции текста - то у каждой порции номера идут 1-n. И потом пока файл не сохранишь - нумерация не пересчитывается правильно.

А вот про это пожалуйста подробнее - сам скрипт, и по шагам как воспроизвести ошибку.
Автор: rank1, Отправлено:15:51 16-05-2008
Ну тогда хотя бы десяток свободных списков ключевых слов добавить можно?

--
Шаги:
1 Создаем скрипт с директивами инклуд

#include "INCLUDE\file1.vbs"
#include "INCLUDE\file2.vbs"
#include "INCLUDE\file3.vbs"

2 Меняем в скрипте C:\NewAbs\Scripts на путь где лежат инклудники

3 Запускаем скрипт - и получаем сбой нумерации строк

Скрипт для расширения инклудов:

[more]
cpp.lua
Код:
function cpp_exe()
local ABSRoot = [no]"C:/NewAbs/Scripts/"[/no]
local itt = 0;
local progText = [no]""[/no];
local incText = [no]""[/no];
while itt < editor.LineCount do [no]--iterate through each line[/no]
local line = editor:GetLine(itt);
if line then
local x = string.gfind(line,[no]'#include%s*"([%w%p]*)"'[/no])()
if x then
x = string.gsub(x,[no]'\\'[/no],[no]'/'[/no])
file = io.open(ABSRoot..x, [no]"r"[/no])
if file ~= nil then
incTxt = [no]""[/no];
incText = file:read([no]"*all"[/no])
progText = progText .. incText;
file:close();
print ([no]"Included: "[/no] ..x);
else
os.msgbox([no]"Не удалось открыть '"[/no]..ABSRoot..x..[no]"'"[/no],[no]"Ошибка!"[/no],48);
print ([no]"*** Skipped: "[/no] ..x);
progText = progText ..[no][[[/no]
[no]'=============================================================================[/no]
[no]'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!![/no]
[no]' MISSING FILE ]][/no]..ABSRoot..x..[no]"\n"[/no]..[no][[[/no]
[no]'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!![/no]
[no]'=============================================================================[/no]

[no]]][/no]
end
else
progText = progText .. line;
end
end
itt = itt + 1;
end
scite.Open([no]""[/no]);
editor:SetText(progText)
end
cpp_exe();
Данный код внедрен в форум с помощью скрипта vladvro

[/more]
Автор: vladvro, Отправлено:19:32 16-05-2008
rank1
сделан экспериментальный вариант редактора с поддержкой до 120 групп ключевых слов, скачать можно тут.
Автор: rank1, Отправлено:22:05 16-05-2008
Огромное спасибо!!! Мне это очень пригодится в работе. Scite у меня основной инструмент. Теперь я смогу просканировать все хедеры, подобрать цветовые схемы и сгенерировать наборы ключевых слов, чтобы сделать нормальную подсветку. Сейчас мне поставили новый комп и лексер не должен подтормаживать от больших объемов ключевых слов.

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

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


Автор: mozers, Отправлено:22:19 16-05-2008
rank1
Твой скрипт у меня работает как часы.
И никакого "сбоя нумерации строк" я не наблюдаю

ALL
Интересная темка на офф-форуме про проверку орфографии в SciTE...
Автор: gamers hater, Отправлено:23:04 16-05-2008
приветствую всех!
у меня проблема с 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, Отправлено:15:08 17-05-2008
gamers hater
$(FilePath) есть полный путь к файлу, вместо него надо ставить $(FileNameExt) (или $(FilePath)\$(FileNameExt) в крайнем случае)

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

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

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

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

Можно ли это как-то исправить?
Автор: BioInfo, Отправлено:00:44 18-05-2008
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 );

[/more]
mozers
Когда делал оформить для публикации на форуме, оформил не верно - курсив закрывает вперед цвета
Использую:
-- Code Poster 2
-- Version: 2.1
Также не отрабатывается наличие скобой квадратных в тексте, те нужно код по мимо цвета и курсива оборачивать также в тег [ no ]

Добавлено:
Извиняюсь за орфоргафию, радактить пост нет больше сил
В строчке:
out_text = out_text..GetEOL()..string.rep( ' ', curr_line_indent );
В скобках ' должно быть не четыре пробела, а символ табуляции.
Автор: mozers, Отправлено:10:14 18-05-2008
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, Отправлено:12:22 18-05-2008
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";


превращается в

Код:
~ $query .= "Host: www.yandex.ru\r\n\r\n";


То есть вместо того, чтобы заменить "//~ " на "", скайт заменяет "//" на ""

Я надеюсь, что не отбил охоту мне помочь .

P. S.
Заметил, что ру-борд автоматически преобразовывает строки вида www.yandex.ru\r\n\r\n"; в ссылки. Как это отменить?
Автор: unreal666, Отправлено:12:27 18-05-2008

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

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

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

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

Автор: Firemanser, Отправлено:17:05 18-05-2008

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

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

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

Выделяем блок с клавиатуры:
Курсор - в начало строки (Home)
потом - Shift+Курсор вниз

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


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

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

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

Добавлено:

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

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




1 / 2 / 3 / 4 / 5 / 6 / 7 / 8 / 9 / 10 / 11 / 12 / 13 / 14 / 15 / 16 / 17 / 18 / 19 / 20 / 21 / 22 / 23 / 24 / 25 / 26 / 27 / 28 / 29 / 30 / 31 / 32 / 33 / 34 / 35 / 36 / 37 / 38 / 39 / 40 / 41 / 42 / 43 / 44 / 45 / 46 / 47 / 48 / 49 / 50 / 51 / 52 / 53 / 54 / 55 / 56 / 57 / 58 / 59 / 60 / 61 / 62 / 63 / 64 / 65 / 66 / 67 / 68 / 69 / 70 / 71 / 72 / 73 / 74 / 75 / 76 / 77 / 78 / 79 / 80 / 81 / 82 / 83 / 84 / 85 / 86 / 87 / 88 / 89 / 90 / 91 / 92 / 93 / 94 / 95 / 96 / 97 / 98 / 99 / 100 / 101 / 102 / 103 / 104 / 105 / 106 / 107 / 108 / 109 / 110 / 111 / 112 / 113 / 114 / 115 / 116 / 117 / 118 / 119 / 120 / 121 / 122 / 123 / 124 / 125 / 126 / 127 / 128 / 129 / 130 / 131 / 132 / 133 / 134 / 135 / 136 / 137 / 138 / 139 / 140 / 141 / 142 / 143 / 144 / 145 / 146 / 147 / 148 / 149 / 150 / 151 / 152 / 153 / 154 / 155 / 156 / 157 / 158 / 159 / 160 / 161 / 162 / 163 / 164 / 165 / 166 / 167 / 168 / 169 / 170 / 171 / 172 / 173 / 174 / 175 / 176 / 177 / 178 / 179 / 180 / 181 / 182 / 183 / 184 / 185 / 186 / 187 / 188 / 189 / 190 / 191 / 192 / 193 / 194 / 195 / 196 / 197 / 198 / 199 / 200 / 201 / 202 / 203 / 204 / 205 / 206 / 207 / 208 / 209 / 210 / 211 / 212 / 213 /
SciTE © 2004 - 2011