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

» SciTE - Open Source Text Editor for Windows & Linux

Автор: vladvro
Дата сообщения: 03.10.2008 12:01
frs

Цитата:
Кстати, может стоит включить в сборку альтернативные регекспы для lua? Например, lrexlib или ещё какие нибудь.

В сборку добавлять не стоит, только добавит путаницы, а этого и так хватает (в окне поиска свой синтаксис, в Луа свой, еще и опции на это влияют).
Все равно у каждого будет свое мнение на то, как оно удобнее.
А вот вылжить пример и инструкцию - это было бы полезно, кому-то и правда будет в помощь.
Автор: frs
Дата сообщения: 03.10.2008 13:47

Цитата:
В сборку добавлять не стоит

Угу, согласен. Посмотрел в инете сколько всего дополнительного понаписано для lua, не тащить же всё в сборку.

------------
Краткая инструкция- берем lrexlib с http://luaforge.net/frs/?group_id=63&release_id=1153 .
Мозгов на компиляцию 2.4.0 мне не хватило, поэтому я взял скомпилированную 2.3.0, в файле rex_pcre.51 hex редактором поменял lua51.dll на SciTE.exe, переименовал его в rex_pcre.dll и вместе с pcre.dll закинул в доступное SciTE место.

Ну и начал ставить опыты (доки по употреблению можно посмотреть в зипе с исходниками.)

re=require("rex_pcre")
print(re.match("Abc","A"))
print(re.match("Abc","a"))
print(re.match("Abc","a",1,"i"))
print(re.match("Abc123","\\d{2}"))
print(re.gsub("Abc123","\\d{2}"," -*%1*- "))

и т.д., и т.п.
основное отличие от привычного синтаксиса в том, что приходится удваивать слеши в выражениях для их экранирования в lua - \\d, \\s, \\w ...
Автор: romawkaural
Дата сообщения: 04.10.2008 15:41
Ребята скачал недавно этот редактор и сразу вопросик о_О понял программа супер, начил настраивать поменял фон и т.п. но вот беда сама постветка на php неподходит вот как самому изменить подстветку? т.е. цвет шрифт и где менять? о_О ...за ранее спасибо =)
Автор: Fade_Out
Дата сообщения: 04.10.2008 22:37
Привет всем, обнаружил баг в этой несомненно замечательной программе, решил написать сюда.

Версия 1.76 .57Ru
Apr 14 2008 10:55:37

ОС: Windows XP Professional

Итак...
Скачал текстовик отсюда (99 Кб): http://zcontest.ru/2008.02/files/ZARJ.txt

Открыл. Прокрутил на самый низ...
И после текста

He also receives further instruction from Morpheus on subjects such as "freeing his mind" and Agents. Afte

такое впечатление что дальше буквы наложились друг на друга!
Между прочим открыл текстовик в Bred 3.0.3 и он его прекрасно прочитал без всяких неприятных глюков!
Кстати забавно, файл взят отсюда: http://www.zcontest.ru/2008.02/zarj.php
Интересно почитать условие задачи
Я поставил курсор прямо после последней буквы "e" и счетчик колонок показал "65536".
Кстати данный глюк присущ и Notepad++.
Текст в файле не содержит переносов строк.
Автор: mozers
Дата сообщения: 05.10.2008 11:09
romawkaural
Цитата:
на php неподходит вот как самому изменить подстветку? т.е. цвет шрифт
Параметры style.hypertext.104-127 в html.properties

Fade_Out
У меня повторить твой глюк не получилось - как ни старался... (ты свой SciTEUser.properties временно удали для чистоты эксперемента)
Автор: vladvro
Дата сообщения: 05.10.2008 11:47
romawkaural

Цитата:
как самому изменить подстветку? т.е. цвет шрифт и где менять?

в сборке проекта SciTE-Ru настройки цветов, шрифтов для PHP находятся в
html.properties [строка 453] :
Код: # PHP
font.php=back:#FFFFFF
# PHP сложные переменные (например "{$_SERVER['SERVER_NAME']}" )
style.hypertext.104=$(font.php),fore:#714D9D,bold,italics
# Текст по умолчанию (функции, константы и т.д.)
style.hypertext.118=$(font.php),fore:#000033,eolfilled
# Текст в двойных кавычках #007F00
style.hypertext.119=$(font.php),fore:#714D9D
# Текст в одинарных кавычках

...
Автор: frs
Дата сообщения: 10.10.2008 20:37
Вариация SideBar.lua, не для включения в сборку, а для разглядывания и переноса в SideBar.lua некоторых кусков (если понравятся)
Сделано на базе не самой последней вариации (просто не поспеваю за изменениями )

Привинтил pcre регекспы (о привинчивании см. в соседней теме)
Соответственно поменялись шаблоны определения функций (для VBScript взял пока от VB, лень вспоминать отличия). Надо еще подумать о виде отображения функции в списке - только имя, с типом функции, с аргументами, теоретически можно завести несколько шаблонов и переключаться
Одношаговый undo вставки аббревиатуры
Отображение текста аббревиатуры в месте расположения курсора, чтобы решить хочу или не хочу её вставлять. Хотел показывать в районе листа аббревиатур по правому клику, но пока не придумал как
Выполнение выделенной в листе функции (наподобие выполнения выделенного в тексте кода по Ctrl+4, вероятно стоит добавить реакцию на текущий лексер-расширение)

SideBar.lua : [more]
Код: --[[--------------------------------------------------
SideBar.lua
Authors: Frank Wunderlich, mozers™, VladVRO, frs, BioInfo
version 0.95
------------------------------------------------------
Needed gui.dll by Steve Donovan
Connection:
In file SciTEStartup.lua add a line:
dofile (props["SciteDefaultHome"].."\\tools\\SideBar.lua")
Set in a file .properties:
command.checked.17.*=$(sidebar.show)
command.name.17.*=SideBar
command.17.*=show_hide
command.mode.17.*=subsystem:lua,savebefore:no

# Set show(1) or hide(0) to SciTE start
sidebar.show=1
--]]--------------------------------------------------

local current_path = props['FileDir']
local file_path = props['FilePath']
local file_mask = '*.*'
local panel_width = 200
local tab_index = 0
local line_count = 0
local list_fav_table = {}
local file_ext = '*.*'
local fav_select_index = 0
-- you can choose to make it a stand-alone window; just uncomment this line:
-- local win = true

local func_name

re=require("rex_pcre")

local win_height = props['position.height']
if win_height == '' then win_height = 600 end

----------------------------------------------------------
-- Create panels
----------------------------------------------------------
local tab0 = gui.panel(panel_width + 18)

local text_path = gui.memo()
tab0:add(text_path, "top", 22)

local list_dir = gui.list()
local list_dir_height = win_height/2 - 80
tab0:add(list_dir, "top", list_dir_height)

local list_favorites = gui.list(true)
list_favorites:add_column("Favorites", 600)
tab0:client(list_favorites)
-------------------------
local tab1 = gui.panel(panel_width + 18)

local list_func = gui.list(true)
list_func:add_column("Functions/Procedures", 600)
local list_func_height = win_height/2 - 80
tab1:add(list_func, "top", list_func_height)

local list_bookmarks = gui.list(true)
list_bookmarks:add_column("@", 24)
list_bookmarks:add_column("Bookmarks", 600)
tab1:client(list_bookmarks)
-------------------------
local tab2 = gui.panel(panel_width + 18)

local list_abbrev = gui.list(true)
list_abbrev:add_column("Abbrev", 60)
list_abbrev:add_column("Expansion", 600)
tab2:client(list_abbrev)
-------------------------
local win_parent
if win then
win_parent = gui.window "Side Bar"
else
win_parent = gui.panel(panel_width)
end

local
tabs = gui.tabbar(win_parent)
tabs:add_tab("FileMan", tab0)
tabs:add_tab("Func/Bmk", tab1)
tabs:add_tab("Abbrev", tab2)
win_parent:client(tab2)
win_parent:client(tab1)
win_parent:client(tab0)

if tonumber(props['sidebar.show']) == 1 then
if
win then
win_parent:size(panel_width + 24, 600)
win_parent:show()
else
gui.set_panel(win_parent,"right")
end
end

tabs:on_select(function(ind)
tab_index=ind
on_switch()
end)

-- Скрытие / показ панели
function show_hide()
if tonumber(props['sidebar.show']) == 1 then
if
win then
win_parent:hide()
else
gui.set_panel()
end
props['sidebar.show'] = 0
else
if
win then
win_parent:show()
else
gui.set_panel(win_parent,"right")
end
props['sidebar.show'] = 1
end
end

----------------------------------------------------------
-- Tab0: FileManager
----------------------------------------------------------
function all_files()
file_mask = '*.*'
fill_list_dir()
end

function
only_current_ext()
file_mask = file_ext
fill_list_dir()
end

function
f_nil() end -- заглушка для разделителя списка в контекстном меню

function file_copy()
if string.len(dir_or_file) < 2 then return end
local
path_destantion = gui.open_dir_dlg -- Note: There is no. This - the wish.
-- Будет реализовано, когда появится функция выбора каталога
end

function
file_move()
if string.len(dir_or_file) < 2 then return end
local
path_destantion = gui.open_dir_dlg -- Note: There is no. This - the wish.
-- Будет реализовано, когда появится функция выбора каталога
end

function
file_ren()
-- "Порнографический" диалог будет появлятся до той поры, пока не будет реализовано
-- Issue 103: shell.inputbox http://code.google.com/p/scite-ru/issues/detail?id=103
if string.len(dir_or_file) < 2 then return end
local
filename_new = gui.prompt_value("Enter new filename:", dir_or_file)
if filename_new.len ~= 0 and filename_new ~= dir_or_file then
os.rename(current_path..'\\'..dir_or_file, current_path..'\\'..filename_new)
fill_list_dir()
end
end

function
file_del()
if string.len(dir_or_file) < 2 then return end
if
shell.msgbox("Are you sure DELETE file?\n"..dir_or_file, "DELETE", 4+256) == 6 then
-- if gui.message("Are you sure DELETE file?\n"..dir_or_file, "query") then
os.remove(current_path..'\\'..dir_or_file)
fill_list_dir()
end
end

function
file_exec()
local filename = current_path..'\\'..dir_or_file
local ret, descr = shell.exec(filename)
if not ret then
print (">Exec: "..filename)
print ("Error: "..descr)
end
end

function
add_fav()
if attr ~= 'd' then
list_favorites:add_item(dir_or_file, current_path..'\\'..dir_or_file)
table.insert(list_fav_table, current_path..'\\'..dir_or_file)
end
end

function
add_fav_buffer()
list_favorites:add_item(props['FileNameExt'], props['FilePath'])
table.insert(list_fav_table, props['FilePath'])
end

function
del_fav()
list_favorites:delete_item(fav_select_index)
table.remove (list_fav_table, fav_select_index+1)
end

tab0:context_menu {
'Files: Show All|all_files',
'Files: Only current ext|only_current_ext',
'', -- разделитель
'Files: Copy to...|file_copy',
'Files: Move to...|file_move',
'Files: Rename|file_ren',
'Files: Delete|file_del',
'Files: Execute|file_exec',
'Files: Add to Favorites|add_fav',
'', -- разделитель
'Favorites: Add active buffer|add_fav_buffer',
'Favorites: Delete item|del_fav',
}
tab1:context_menu {
'Functions: Execute|func_exec',
'',
'пока несуществующие функции',
'Functions: Sort by name|sort_by_name',
'Functions: Sort by code order|sort_by_app',
}
tab2:context_menu {
abbr
}
----------------------------------------------------------
-- Memo: Path and Mask
----------------------------------------------------------
local function show_path()
local rtf = '{\\rtf{\\fonttbl{\\f0\\fcharset1 Helv;}}{\\colortbl ;\\red0\\green0\\blue255; \\red255\\green0\\blue0;}\\f0\\fs16'
local path = '\\cf1'..string.gsub(current_path, '\\', '\\\\')..'\\\\'
local mask = '\\cf2'..file_mask..'}'
text_path:set_text(rtf..path..mask)
end

----------------------------------------------------------
-- List: Folders and Files
----------------------------------------------------------
local function open_file(filename)
if filename:match(".session$") ~= nil then
filename = filename:gsub('\\','\\\\')
scite.Perform ("loadsession:"..filename)
else
scite.Open(filename)
end
editor.Focus = true
end

function
fill_list_dir()
list_dir:clear()
local folders = gui.files(current_path..'\\*', true)
list_dir:add_item ('[..]', {'..','d'})
for i, d in ipairs(folders) do
list_dir:add_item('['..d..']', {d,'d'})
end
local
files = gui.files(current_path..'\\'..file_mask)
if files then
for
i, filename in ipairs(files) do
list_dir:add_item(filename, {filename})
end
end
list_dir:set_selected_item(0)
show_path()
end

local function
list_dir_openitem()
if attr == 'd' then
gui.chdir(dir_or_file)
if dir_or_file == '..' then
current_path = string.gsub(current_path,"(.*)\\.*$", "%1")
else
current_path = current_path..'\\'..dir_or_file
end
fill_list_dir()
else
open_file(current_path..'\\'..dir_or_file)
end
end

local function
list_dir_select(idx)
if idx ~= -1 then
local
data = list_dir:get_item_data(idx)
dir_or_file = data[1]
attr = data[2]
file_ext = '*.'..dir_or_file:gsub('.+%.','')
end
end

list_dir:on_double_click(function(idx)
if idx ~= -1 then
list_dir_openitem()
end
end
)

list_dir:on_key(function(key)
local idx = list_dir:get_selected_item()
if idx == -1 then return end
if
key == 13 then -- Enter
list_dir_select(idx)
list_dir_openitem()
elseif key == 8 then -- BackSpace
list_dir:set_selected_item(0)
list_dir_select(0)
list_dir_openitem()
elseif key == 46 then -- Delele
list_dir_select(idx)
file_del()
end
end
)

list_dir:on_select(function(idx)
list_dir_select(idx)
end)

----------------------------------------------------------
-- List: Favorites
----------------------------------------------------------
local favorites_filename = props['SciteUserHome']..'\\favorites.lst'

list_favorites:on_select(function(idx)
if idx ~= -1 then
fav_select_index = idx
end
end
)

list_favorites:on_double_click(function(idx)
if idx ~= -1 then
open_file(list_favorites:get_item_data(idx))
end
end
)

list_favorites:on_key(function(key)
local idx = list_favorites:get_selected_item()
if idx == -1 then return end
if
key == 46 then -- Delele
fav_select_index = idx
del_fav()
end
end
)

local function fill_list_favorites()
local favorites_file = io.open(favorites_filename)
if favorites_file then
for
line in favorites_file:lines() do
if
line.len ~= 0 then
local
caption = line:gsub('.+\\','')
list_favorites:add_item(caption, line)
table.insert(list_fav_table, line)
end
end
favorites_file:close()
end
end

fill_list_favorites()

local function save_list_favorites()
io.output(favorites_filename)
local list_string = table.concat(list_fav_table,'\n')
io.write(list_string)
io.close()
end

---------------------------------------------------------
-- List: Functions/Procedures
----------------------------------------------------------
list_func:on_double_click(function(idx)
local pos = list_func:get_item_data(idx)
if pos then
editor:GotoLine(pos)
editor.Focus = true
end
end
)

local function list_func_select(idx)
if idx ~= -1 then
func_name = list_func:get_item_text(idx)
end
end

list_func:on_select(function(idx)
list_func_select(idx)
end)

function func_exec()
dostring(func_name)
end

function
fill_list_func()
list_func:clear()

local findRegExp1 = {
cpp="(?im)[^.,<>=\\n]*?[ :]([^.,<>=\\n\\s]+\\([^.<>=)]*?\\))[\\s\\/}]*?{",
js="(?im)^[^,<>\\n]*?function[^(]*?\\(.*?\\))[^{]*?{",
vb="(?im)^\\s*(?:Private|Public|Friend)*\\s*(?:Function|Sub|Property)\\s+((?:Get|Let|Set)?\\s*([a-z]?[a-z0-9_.]*))\\s*?(?:\\([^)]\\))?",
vbscript="(?im)^\\s*(?:Private|Public|Friend)*\\s*(?:Function|Sub|Property)\\s+((?:Get|Let|Set)?\\s*([a-z]?[a-z0-9_.]*))\\s*?(?:\\([^)]\\))?",
css="([\\w.#-_]+)[\\s}]*?{}",
pascal="(?im)^\\s*(?:procedure|function)\\s+(.*?\\(.*?\\).*?);\\s*$",
python="(?im)^\\s*(?:def|cla)\\s*.*):",
asm = "(?im)^\\s*(?|(?:proc)\\s+(\\w+)|(\\w+)\\s+(?:proc|frame))"
}

local findPattern = findRegExp1 [editor.LexerLanguage]
if findPattern == nil then
findPattern = "(?im)^(?:local\\s+)?(?:sub|function|func)\\s+(\\w+)\\s*\\(.*?\\)"
end
local
textAll = editor:GetText()
local startPos, endPos, findString
startPos = 1
r=re.new(findPattern)
while true do
startPos, endPos, findStr=r:exec(textAll,startPos)
if startPos == nil then break end
findString=r:match(textAll,startPos)
findString = findString:gsub("^%s*", ""):gsub("[\r\n]*", ""):gsub("%s+", " ")
local line_number = editor:LineFromPosition(startPos+2)
list_func:add_item(findString, line_number)
startPos = endPos + 1
end
end

----------------------------------------------------------
-- List: Bookmarks
----------------------------------------------------------
function list_bookmark_add(line_number)
local line_text = editor:GetLine(line_number):gsub('%s+', ' '):gsub('^%s+', '')
list_bookmarks:add_item({props['BufferNumber'], line_text}, {file_path, line_number})
end

local function
list_bookmark_delete(line_number)
for i = 0, list_bookmarks:count() - 1 do
local
bookmark = list_bookmarks:get_item_data(i)
if bookmark[1] == file_path and bookmark[2] == line_number then
list_bookmarks:delete_item(i)
break
end
end
end

local function
list_bookmark_delete_all()
for i = list_bookmarks:count()-1, 0, -1 do
local
bookmark = list_bookmarks:get_item_data(i)
if bookmark[1] == file_path then
list_bookmarks:delete_item(i)
end
end
end

list_bookmarks:on_double_click(function(idx)
if idx ~= -1 then
local
pos = list_bookmarks:get_item_data(idx)
if pos then
scite.Open(pos[1])
editor:GotoLine(pos[2])
editor.Focus = true
end
end
end
)

----------------------------------------------------------
-- List: Abbreviations
----------------------------------------------------------
function fill_list_abbrev()
function read_abbrev(file)
local abbrev_file = io.open(file)
if abbrev_file then
for
line in abbrev_file:lines() do
if
string.len(line) ~= 0 then
local
_abr, _exp = string.match(line, '(.-)=(.+)')
if _abr ~= nil then
list_abbrev:add_item ({_abr, _exp},_exp)
else
local
import_file = string.match(line, '^import%s+(.+)')
if import_file ~= nil then
read_abbrev(string.match(file, '.+\\')..import_file)
end
end
end
end
abbrev_file:close()
end
end

list_abbrev:clear()
local abbrev_filename = props['AbbrevPath']
read_abbrev(abbrev_filename)
end

list_abbrev:on_double_click(function(idx)
if idx~=-1 then
local
abbrev = list_abbrev:get_item_text(idx)
local ss,se = editor.SelectionStart,editor.SelectionEnd
local len = abbrev:len()
editor:BeginUndoAction()
editor:InsertText(ss, abbrev)
editor:SetSel(se+len, ss+len)
scite.MenuCommand(IDM_ABBREV)
editor:EndUndoAction()
editor.Focus = true
end
end
)

list_abbrev:on_select(function(idx,abbr)
if idx~=-1 then
local
abbrev = list_abbrev:get_item_text(idx)
local len = abbrev:len()
abbr=list_abbrev:get_item_data(idx)
abbr=string.gsub(abbr,'\\r\\n','\n')
abbr=string.gsub(abbr,'\\r','\r')
abbr=string.gsub(abbr,'\\n','\n')
abb=string.gsub(abbr,'\\t','\t')
pos=editor.CurrentPos
editor:CallTipShow(pos,abb)
end
end
)
----------------------------------------------------------
-- Events
----------------------------------------------------------
function on_switch()
if tab_index == 0 then
local
path = props['FileDir']
file_path = props['FilePath']
if path == '' then return end
if
path ~= current_path then
current_path = path
fill_list_dir()
end
elseif
tab_index == 1 then
fill_list_func()
elseif tab_index == 2 then
fill_list_abbrev()
end
end

-- Add user event handler OnSwitchFile
local old_OnSwitchFile = OnSwitchFile
function OnSwitchFile(file)
local result
if old_OnSwitchFile then result = old_OnSwitchFile(file) end
on_switch()
return result
end

-- Add user event handler OnOpen
local old_OnOpen = OnOpen
function OnOpen(file)
local result
if old_OnOpen then result = old_OnOpen(file) end
on_switch()
return result
end

-- Add user event handler OnUpdateUI (Call function fill_list_func)
local old_OnUpdateUI = OnUpdateUI
function OnUpdateUI()
local result
if old_OnUpdateUI then result = old_OnUpdateUI() end
if
tab_index == 1 then
local
line_count_new = editor.LineCount
if line_count_new ~= line_count then
fill_list_func()
line_count = line_count_new
end
end
return
result
end

-- Add user event handler OnSendEditor
local old_OnSendEditor = OnSendEditor
function OnSendEditor(id_msg, wp, lp)
local result
if old_OnSendEditor then result = old_OnSendEditor(id_msg, wp, lp) end
if
id_msg == SCI_MARKERADD then
if
lp == 1 then list_bookmark_add(wp) end
elseif
id_msg == SCI_MARKERDELETE then
if
lp == 1 then list_bookmark_delete(wp) end
elseif
id_msg == SCI_MARKERDELETEALL then
if
wp == 1 then list_bookmark_delete_all() end
end
return
result
end

-- Add user event handler OnFinalise
local old_OnFinalise = OnFinalise
function OnFinalise()
local result
if old_OnFinalise then result = old_OnFinalise() end
save_list_favorites()
return result
end
Автор: mozers
Дата сообщения: 12.10.2008 00:14

Цитата:
New Revision: 783
Modified:
SideBar.lua
Log:
-chg: SideBar.lua: Abbreviations: Добавлено отображение содержимого
аббревиатуры и возможность отменить вставку одной командой Undo (Crtl+Z) (Доработка frs)

frs
Цитата:
Привинтил pcre регекспы (о привинчивании см. в соседней теме)
Существующий алгоритм скрипта уже не может удовлетворить возрастающих потребностей. Для части языков просто невозможно создать универсальный шаблон, извлекающий все функции (слишком по-разному они задаются).
Если pcre регекспы позволяют создавать конструкции, типа шаблон1|шаблон2|шаблон3 (т.е. обрабатывать текст одновременно несколькими, совершенно разными, регсепами) - тогда будем осваивать pcre.
Если - нет, то проблему надо решать каким то другим путем...

Цитата:
Выполнение выделенной в листе функции
Сработает только для глобальных lua функций без параметров. Т.е. в 99% случаев команда будет выдавать одни ошибки.

Цитата:
просто не поспеваю за изменениями
Не обязательно то и дело открывать history чтобы быть в курсе последних событий. Достаточно подписаться на рассылку и все изменения будут падать в Ваш почтовый ящик сами
Автор: frs
Дата сообщения: 12.10.2008 01:58
pcre - поддерживает альтернативы, ignore case, именованные сохранения, несохраняющие скобки и т.д и т.п. см. например шаблоны для vb, vbscript, asm.
Вот кстати шаблоны посвежее для моей версии - избавился от двойных слешей, поправил шаблоны vb и vbscript.
Untitled4.lua [строка 1] :
Код: local findRegExp1 = {
cpp=[[(?im)[^.,<>=\n]*?[ :]([^.,<>=\n\s]+\([^.<>=)]*?\))[\s\/}]*?{",--.*?}]],
js=[[(?im)^[^,<>\n]*?function[^(]*?\(.*?\))[^{]*?{]],
vb=[[(?im)^\s*(?:Private|Public|Friend)?\s*(?:Static\s+)?(?:Function|Sub|Property)\s+((?:Get|Let|Set)?\s*([a-z]?[a-z0-9_.]*))\s*?(?:\([^)]\))?]],
vbscript=[[(?im)^\s*(?:Private|Public(?:\s+Default)?)*\s*(?:Function|Sub|Property)\s+((?:Get|Let|Set)?\s*([a-z]?[a-z0-9_.]*))\s*?(?:\([^)]\))?]],
css=[[([\w.#-_]+)[\s}]*?{}]],
pascal=[[(?im)^\s*(?:procedure|function)\s+(.*?\(.*?\).*?);\s*$]],
python=[[(?im)^\s*(?:def|cla)\s*.*):]],
asm = [[(?im)^\s*(?|(?:proc)\s+(\w+)|(\w+)\s+(?:proc|frame))]]
}
Автор: Dimsoft
Дата сообщения: 12.10.2008 10:19
а как включить 886 кодировку ?
Автор: mozers
Дата сообщения: 12.10.2008 10:56
frs
Цитата:
pcre - поддерживает альтернативы, ignore case, именованные сохранения, несохраняющие скобки и т.д и т.п.
Т.е. (повторяю вопрос) можно обработать текст несколькими, совершенно разными, регсепами одновременно?
Тогда это - действительно - находка
Когда pcre появится в приличном виде на http://scite-ru.googlecode.com/svn/trunk/lualib/pcre/ (желательно хотя бы с кратенькой русской документацией) то можно будет говорить о ее внедрении в сборку.

Dimsoft
меню "Tools" - "Кодировка" - "dos866 <-> win1251"
Автор: frs
Дата сообщения: 12.10.2008 17:56

Цитата:
Если pcre регекспы позволяют создавать конструкции, типа шаблон1|шаблон2|шаблон3
- это и есть альтернативы, знак альтернативы - "|"
см. шаблоны vb, vbs, asm. НО это не разные регекспы одновременно это один регексп с альтернативами. Несколько разных применяются уже программно и последовательно.
текущие шаблоны типа [SsFf][Uu][BbNn][^ .]* - поймают мне переменные Sun, funny и т.п.
Автор: entada
Дата сообщения: 12.10.2008 18:38
Пожалуйста, подскажите, можно ли изменить цвет символов CR/LF?
Хотелось бы, по крайней мере для обычного чёрного текста, сделать его более приглушённым, таким как пробелы и табуляция.
Автор: mozers
Дата сообщения: 12.10.2008 21:57
entada
Фон CR/LF не задается и всегда совпадает с цветом последнего печатного символа строки.
Автор: oldBob
Дата сообщения: 13.10.2008 10:30
FileManager в SideBar - замечательная вещь. Только один вопрос: как перейти на другой диск?
Автор: entada
Дата сообщения: 13.10.2008 12:20

Цитата:
Фон CR/LF не задается

А нельзя ли изменить (инвертировать) начертание этих символов? Чтобы они выглядели как тёмные буквы на светлом фоне с обводкой?
Всё-таки чёрные CR/LF мешают читать (а их полное отсутствие - ещё больше)...
Автор: mozers
Дата сообщения: 13.10.2008 17:41
oldBob
Цитата:
как перейти на другой диск?
Пока - только открыв в SciTE файл с другого диска.
С сегодняшним gui.dll я не представляю как это можно реализовать иначе.

entada
Цитата:
А нельзя ли изменить (инвертировать) начертание этих символов?
Только правкой кода SciTE.
Автор: mozers
Дата сообщения: 14.10.2008 16:30
frs
Посмотрел pcre. Пришел в ужас от монстроидальности этой поделки. В сборке ей - явно не место.
Решил проблему с построением списка функций/процедур малой кровью:
Цитата:
New Revision: 788
Modified:
http://scite-ru.googlecode.com/svn/trunk/pack/tools/SideBar.lua
Log:
-chg: SideBar.lua: List Functions/Procedures: Поиск функций теперь
осуществляется одновременно несколькими регсепами. Поиск ведется без учета
регистра. Найденные функции упорядочиваются по очереди и по имени.
Автор: frs
Дата сообщения: 14.10.2008 17:32
по результатам кратенького тестирования не пойманы функции
asm
proc FasmProcTest
ложное срабатывание на
ProcTest fram - выдуманная строка с ошибкой, может притянуто за уши, но всё-таки неаккуратненько

cpp
ColouriseLuaDoc из файла LexLua.cхх
FoldBasicDoc из файла LexBasic.cxx
ColouriseVBDoc, FoldVBDoc из LexVB.cxx

vb и vbs
Public Property Set test()

vb
static function test()

vbs
Public Default Property Get Left() As Long
private sub tst()
Автор: vladvro
Дата сообщения: 14.10.2008 18:41
mozers

Цитата:
New Revision: 788
-chg: SideBar.lua: List Functions/Procedures

наблюдаю в списке функций для самого этого скрипта след строчку:
Цитата:
Functions_ListFILL()endf:Functions_SortByName
Автор: mozers
Дата сообщения: 14.10.2008 19:11
frs vladvro
Ну виноват, поторопился, будем исправлять
Если есть желание помочь - шлите проблемное файло (желательно со списком Ф-ций/процедур которые НАДО получить) на mozers_собака_mail.ru.
Автор: oldBob
Дата сообщения: 16.10.2008 09:55
mozers,
SciTE Version 1.76 .60Ru Sep 15 2008 22:06:34 и SideBar revision 788 вместе не работают, SciTE крешится. Меняю на SideBar из сборки - все нормально.
Автор: cvaqlav
Дата сообщения: 16.10.2008 15:08
oldBob
Так и будет. Причина в несоответствии версий SideBar.lua, gui.dll и shell.dll друг другу. Т.е., если верить SVN, для SideBar rev. 788 нужны gui.dll rev. 777 и shell.dll rev. 772. Но лучше просто взять последние версии этих файлов: SideBar.lua и LuaLib (gui.dll, shell.dll, shell.html и shell_rus.html).
Автор: mozers
Дата сообщения: 16.10.2008 15:39
oldBob
Цитата:
как перейти на другой диск?

Цитата:
New Revision: 803
Modified:
trunk/pack/tools/SideBar.lua
Log:
-chg: SideBar.lua: FileMan: Добавлена возможность произвольного выбора диска/каталога.
(Автор пожелал остаться неизвестным
Ну и regex для поиска функций тоже поправлены еще в предыдущий раз...

oldBob
Цитата:
SciTE Version 1.76 .60Ru Sep 15 2008 22:06:34 и SideBar revision 788 вместе не работают
Просто все очень быстро обновляется. Тут - либо регулярно скачивать ВСЕ изменения (хотя тут cvaqlav очевидно прав и достаточно обновить gui.dll) либо - ждать новой сборки. А она уже, судя по всему, - не за горами
Автор: vectoroc
Дата сообщения: 16.10.2008 15:56
Кто-нибудь пользовался http://llt.chez-alice.fr/ ?
По описанию, как раз то, чего мне не хватает в SciTE. Может у кого осталось в завалах? На сайте скачивание недоступно.

И ещё, у меня почему-то не работает перекодирование в другие кодировки из меню Tools/кодировка/конвертировать... Вываливается сообщение "Отсутствует исполняющее ядро для расширения имени файла ".js"
Автор: oldBob
Дата сообщения: 17.10.2008 09:46
mozers,
Замена gui.dll ничего не дала, более того, gui.dll из сборки и по ссылке - одинаковы (по крайней мере, у меня). Буду ждать сборку.

vectoroc
а что конкретно надо? Filerx? Давай адрес, куда слать.
Автор: vectoroc
Дата сообщения: 17.10.2008 11:25
oldBob
Да, Filerx
Если не сложно, на vectoroc@гмэйл ком
thx
Автор: mozers
Дата сообщения: 17.10.2008 14:30
vectoroc
Цитата:
"Отсутствует исполняющее ядро для расширения имени файла ".js"
Видимо ты каким то твиккером начисто снес WSH.
Автор: wyxa
Дата сообщения: 18.10.2008 16:50
SciTE запускается у меня всегда на пол экрана. Как сделать так, чтобы он всегда был развёрнут на весь экран?
Я создавал ярлык, и прописывал там ему в свойствах Run » Maximized, но это не помогло…
Автор: ALeXkRU
Дата сообщения: 18.10.2008 18:31
wyxa
найди в файле глобальных настроек (меню Настройки..) в секции

Цитата:
[Position] Размеры и позиция окна программы
# Ширина и высота окна (в полный экран=-1)
#~ position.width=-1
#~ position.height=-1

и сними комментарий (удали #~ )
(лучше даже эти строки скопировать в файл Пользовательских настроек (чтобы при установке новых версий не затерлись настройки), а в глобальных - оставить как есть

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

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


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