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

» SciTE - Open Source Text Editor for Windows & Linux

Автор: Grisper
Дата сообщения: 17.04.2006 14:56
Имхо было бы удобно diff конфигов делать с предыдущей версией.
типа
добавлены файлы: \tools\1.lua
изменены файлы: \main.properties
line 127:
> a = 3
< a = 4
примерно так

для тех у кого сборка отличается сильно это было бы удобно имхо.

если лениво не будет - сделаю скрипт который такое делает, но может кто сделает всё же?
Автор: mozers
Дата сообщения: 17.04.2006 16:05
Grisper
Скриптом - это еще можно (но только чтоб 1 кнопка и сразу результат), а вручную - не буду (влом). Меняются порой отдельные буквы, уточняются формулировки в комментах. Очень много всякой мелочи. Утонуть можно, если все детали отслеживать.

Еще хотел сказать насчет автодополнения из api. Поскольку атоматическое (после точки) - круто и удобно, но слишком не универсально - пришлось от него отказаться Пока остановился на таком варианте:

Цитата:
Пример использования:
Допустим, нам необходимо написать такую конструкцию:
WScript.Network.MapNetworkDrive "E:", "\\Server\Public"

- создаем файл с расширением VBS
- пишем в нем ws
- нажимем Сtrl+Enter (Завершить слово) и из раскрывшегося списка выбираем WScript.Network
- дописываем точку и первую букву метода .m
- нажимем Сtrl+Enter и из раскрывшегося списка выбираем MapNetworkDrive
- у нас получилось WScript.Network.MapNetworkDrive
- теперь достаточно добавить пробел или открыть круглую скобку - появится всплывающая подсказка по параметрам
- обратите внимание, что когда вы будете вписывать разделенные запятой параметры, во всплывающей подсказке будет подсвечивается текущий параметр.

Мне показалось, что в SciTE имеется ошибка:
Клавиатурные комбинации Сtrl+I и Сtrl+Enter отрабатывают идеентично и соответствуют "Завершить слово"
Та же команда "Завершить слово - Сtrl+Enter" через меню не срабатывает.
Зато через меню срабатывает команда "Завершить символ - Сtrl+I" но результат ее действия - завершение слова.
В итоге я так и не понял что это за команда "Завершить символ - Сtrl+I", как она работает и как ее вообще можно вызвать.



Ну и скриптов накопилось - куча, только их все перерабатывать надо...
Вообще твой и gansA скрипт (из тех что в сборке) объединить бы в один. А то твой стабильно работает, а у gansA функционалу больше но глюки...
Автор: yumaxg
Дата сообщения: 17.04.2006 18:13

Цитата:
yumaxg
Поздравляю с первыми (и какими толковыми!) постами
Ты - крут


это очень приятно - есть много идей по плану атоматизации, первым делом хочетса поиска об'явления функции, при чем не просто поиск, а позиционирование курсора, и обьязательно в файлах проекта. Начал розбиратся из Filerx. Прошу высказивать идеи, универсальной системи для всех языков
Автор: mozers
Дата сообщения: 17.04.2006 22:44
yumaxg
По скриптам:
у меня так и не заработал Хотя и условие (зачем анализировать стиль то тут? не просек) я упростил до минимума:
Код: if charAdded == " " then
Abbreviations()
end
Автор: Grisper
Дата сообщения: 17.04.2006 22:54

Цитата:
Прошу высказивать идеи, универсальной системи для всех языков


у меня в луа конструкции вида:

Код:
MyObj1 = {
NPC1 = "vasya"
, NPC2 = "fedya"
}

_G[MyObj1.NPC1.."_init"] = function (npc_id)
...
end
Автор: dB6
Дата сообщения: 18.04.2006 12:32
mozers
Тестил этот же скрипт (автодополнения).
Суть его в том, чтобы автоматически аббревиатуры из abbrev расшифровывались по нажатию пробела. Вместо того, чтобы нажимать Ctrl+B, например. Имхо, не очень удобно.
Можешь посмотреть [more=тут]
Код: -- Expand abbreviations and show tooltip when appropriated. by Jos van der Zande (JdeB)
-- changed yumax#301170722
function Abbreviations()
-- get current word
from = editor:WordStartPosition(editor.CurrentPos-2)
to = editor:WordEndPosition(editor.CurrentPos-2)
curword = editor:textrange(from, to)
if string.sub(curword,1,1) == ' ' and string.sub(curword,2,2) == ' ' then
curword = string.sub(curword,3,-1)
from = from - 2;
end
print(from..' '..to..'-'..curword..'-'..editor.CurrentPos)
-- get possible replacement from abbrev.properties
local repword = ""
ext = props['FileExt']
--~ abbrev_file = props['abbrev.$(file.patterns.'..ext..')'];
abbrev_file = props['abbrev.properties'];
--~ print(abbrev_file)
--~ local f = io.open(abbrev_file)
local f = io.open(props['SciteDefaultHome'].."\\abbrev.properties")

if f ~= nil then
local Abbrevtxt = f:read('*a')
if Abbrevtxt then
f:close()
local rep_start = string.find(Abbrevtxt,"\n" .. string.lower(curword) .. "=")

-- print('-'..Abbrevtxt..'-'..curword..'-',rep_start,"-\n" .. string.lower(curword)..'-')
if rep_start ~= nil and rep_start ~= 0 then
rep_start = rep_start + string.len(curword) + 2
rep_end = string.find(Abbrevtxt .. "\n","\n",rep_start)-1
repword = string.sub(Abbrevtxt .. "\n",rep_start,rep_end)
-- _ALERT("rep_start:" ..rep_start.. "rep_end:"..rep_end )
end
end
end
-- if found process it
-- _ALERT("abbr:" .. curword .. " replaced by: " .. repword .. "|" )
if repword ~= nil and repword ~= "" then
-- get indent info
local s_indent = ""
if editor.LineIndentation[editor:LineFromPosition(editor.CurrentPos)] then
currentindent = editor.LineIndentation[editor:LineFromPosition(editor.CurrentPos)]
-- _ALERT(currentindent)
if editor.UseTabs then
n_idents = editor.LineIndentation[editor:LineFromPosition(editor.CurrentPos)] / editor.TabWidth
s_indent = string.rep("\t",n_idents)
else
n_idents = editor.LineIndentation[editor:LineFromPosition(editor.CurrentPos)]
s_indent = string.rep(" ",n_idents)
end
end
--end
-- remove current word
editor:remove(from, to +1)
-- replace text \n for LF plus the indent info
repword = string.gsub(repword, "\\n", "\n" .. s_indent)
-- replace text \t for TAB
repword = string.gsub(repword, "\\t", "\t")
-- find caret position in the word
tcaretpos = string.find(repword,"|")
-- when string to insert contains | then calculate the pos and remove it
if tcaretpos ~= nil and tcaretpos ~= 0 then
caretposword = string.find(repword,"|") -1
caretpos = from + string.find(repword,"|") -1
repword = string.gsub(repword, "|", "")
else
-- set caret pos to the end of the inserted string
caretposword = 0
caretpos = from + string.len(repword)
end
editor:insert(from,repword)
editor:GotoPos(caretpos)
--
-- try to create the tooltip()
-- get keyword/function name part infront of the (
braceopenpos = string.find(repword,"%(")
braceclosepos = string.find(repword,"%)")
-- when string to insert contains | then calculate the pos and remove it
--_ALERT(braceclosepos)
if braceclosepos ~= nil and braceclosepos < caretposword then
-- caret pos not inside the first function
repword = ""
elseif braceopenpos then
-- get keyword/function name part infront of the |
repword = string.sub(repword,1,braceopenpos-1)
elseif caretposword ~= 0 then
repword = string.sub(repword,1,caretposword)
else
repword = ""
end
--_ALERT("repword:" .. repword )
if repword ~= "" and braceopenpos then
f = io.open(props['SciteDefaultHome'].."\\api\\au3.api")
if f ~= nil then
local apitxt = f:read('*a')
if apitxt then
f:close()
local rep_start = string.find(string.lower(apitxt),"\n" .. string.lower(repword).."[\n ]")
if rep_start ~= nil then
rep_end = string.find(apitxt,"\n",rep_start+2)-1
repword = string.sub(apitxt,rep_start+1,rep_end)
-- put the description on the next line..
repword = string.gsub(repword, "%)", "%)\n",1)
editor:CallTipShow(caretpos, repword)
end
end
end
end
end
end
Автор: Grisper
Дата сообщения: 18.04.2006 12:37
dB6, согласен - не очень удобно.
мне проще Ctrl+B нажать когда нужно
Автор: mirk
Дата сообщения: 18.04.2006 14:31

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

Эта функция есть в Менеджере проектов...
Автор: Grisper
Дата сообщения: 18.04.2006 14:36
mirk
она очень криво там работает
если функция объявлена как _G["funcname"] = function () то не ищет
ищет только если строчка с function начинается
Автор: mirk
Дата сообщения: 18.04.2006 14:49
Grisper
Все может быть, вот только ИМХО гораздо проще найти исходники этого менеджера и поправить их, чем разрабатывать, что-то концептуально новое...

Кстати, для этого, если разрабатывать с нуля, может подойти вот такой Gentee язык программирования, может работать как компилятор и как интерпретатор, к тому же он кроссплатформенный, а это ИМХО самое важное.

Если кому интересен язык, посмотрите уроки, очень занятная всечь
Автор: Grisper
Дата сообщения: 18.04.2006 14:57
mirk
если писать, то да. согласен.
я к тому, что менеджер _сейчас_ не очень корректно работает
Автор: yumaxg
Дата сообщения: 18.04.2006 18:38

Цитата:
Эта функция есть в Менеджере проектов...

я так понимаю в Менеджере проектов должен бить какойто Makefile по какому мы и будем строить проект + компилить и можем его нормально анализировать
при чём я предлагаемом менеджере не наблюдал поика в ФАЙЛАХ проэкта

а про многоплатформность (насколько понял исходники утеряны, а французкой думаю мало хто знает ) и для всех языков, я нак и не понял как можна изменить для этого настройки

+ все говорят о filerx но я так понял никто не пользуються (я вчера не имел времени разобратца с ним)
Пожалуста, раскажите ефективность его использования (может не стоит тратить времья)

Добавлено:

Цитата:
Так вроде как SciTE и без скриптов все прекрасно автодополняет только настроить его надо соответствующе...

мне к премеру быстрее набрать короткое сокращение (думаю тут в меня полетят помидоры, я про обычьные синтаксические конструкции{html і других многословных не берём})
тоесть появилась идея по пробелу... (стандартной функции в IFaceTable.cxx не нашлось к нещастью )
анализ стиля ну намерения были благие - оптимизация: ведь файлики сокращений могут бить не очень маленькими, а после каждого пробела его исполнять, както ...


Цитата:
Интересный. Правда накак не могу выдумать зачем он мне может понадобиться...
Подскажешь? - включим в сборку

для исходников не гарантирую, что применять его будуть каждый день, но я использую SciTe для текстових файликов где нужно вибирать иногда нужные строки

(есть мечта оказатся когда нибуть от всяких вордов и перейти на tex)

Добавлено:


Цитата:
Ну и скриптов накопилось - куча, только их все перерабатывать надо...

также интересно их увидеть думаю у всех сообща найдётса больше времени для их тестировки и переработки
Автор: mozers
Дата сообщения: 18.04.2006 21:14
yumaxg
В общем, резюмирую что я понял из того что сказал dB6 и ты:
Скрипт автоматически (после нажатия на пробел) заменяет сокращения на их полное сокращение хранящееся в файле abbrev.properties
Т.е. предназначен для тех, кто все свои сокращения хранит в одном единственном файле, помнит их все наизусть и к тому же ему лень нажимать Ctrl+B.
Лично мне не подходит ни по одному из 3-х условий
Что в скрипте делает упоминание об au3.api вообще непонятно...

2й скрипт тогда назовем так:
"Вставить выбранные (по Ctrl+F2) строки"
Я думаю, что применение ему найдется


Цитата:
все говорят о filerx но я так понял никто не пользуються
Точно так. Хоть бы кто разобрался с этим зверем. Написал бы заметку какую нить...
Я так только скрипты из него тырю для своих нужд
Кстати и SideWinder - штука довольно занятная...

Цитата:
также интересно их увидеть думаю у всех сообща найдётса больше времени для их тестировки и переработки
Да скрипты то в большинстве своем - довольно известные решения, надранные подряд без разбору откуда придется.
Если кому то интересно в этой мусорке поковыряться - выложу. Только приятных ощущений не гарантирую
Вот взять, к примеру - CleanDocWhitespace (в любой сборке имеется, в инете выложен повсюду)... Ну туфта же! Неужели всех удовлетворяет работа этого убожества? Или просто не пользуется никто реально?
А я бы не отказался от скрипта, который выставляет заданные промежутки между символами, устанавливает правильную табуляцию, исправляет регистр, и т.д. Короче превращает набранный в угаре в каком то левом блокноте код в аккуратно оформленную программу.
Глядя на некоторые примеры кода, проскакивающие и в нашем топике и в других, понимаю, что настоящих программистов проблема наглядной подачи материала нисколько не колышет
Автор: dB6
Дата сообщения: 19.04.2006 12:54
mozers
Цитата:
Скрипт автоматически (после нажатия на пробел) заменяет сокращения на их полное сокращение хранящееся в файле abbrev.properties
Т.е. предназначен для тех, кто все свои сокращения хранит в одном единственном файле, помнит их все наизусть и к тому же ему лень нажимать Ctrl+B.

Не совсем так. Это я поправил скрипт (для теста), чтобы он юзал один файл abbrev.properties, а так он написан был с использованием разных файлов сокращений для разных языков:
Код: ext = props['FileExt']
abbrev_file = props['abbrev.$(file.patterns.'..ext..')'];
Автор: Grisper
Дата сообщения: 19.04.2006 13:06

Цитата:
Ну вот не надо Для конкретных языков есть свои конкретные программы/скрипты для "причесывания" кода. Так что особо не вижу смысла придумывать что-то очень уж "универсальное" - все равно не будет функциональней своих узкоспециализированных аналогов.

Согласен. Для С/С++ есть AStyle, например. Писать самому такое - тяжко имхо.

А знает ли кто-нибудь для LUA автоформатер кода?
Автор: yumaxg
Дата сообщения: 19.04.2006 13:29

Цитата:
Если кому то интересно в этой мусорке поковыряться - выложу. Только приятных ощущений не гарантирую [Image]


как раз при таком ковырянии и рождается истина ....
+ не выдумываются новые велосипеды
Автор: mirk
Дата сообщения: 20.04.2006 09:50
В общем наваял на основе скрипта Grisper`a список TODO, FIXME и BUG для текущего файла:


Код:
command.name.5.*=BUG, FIXME, TODO
command.5.*=dofile $(SciteDefaultHome)\\lua\\ToDoList.lua
command.mode.5.*=subsystem:lua,savebefore:no
Автор: Grisper
Дата сообщения: 20.04.2006 21:51
mirk
Скрипт полезный, только вот непонятно зачем там

Код:
str1 = string.gsub(str1,"_G "," ")
Автор: mirk
Дата сообщения: 20.04.2006 22:01
Grisper
Полностью с вами согласен уважаемый, код ужасный, и это еще мягко сказано
Тут идеальным вариантом будет задание списка нужных директив в массиве, и исходя от этого плясать...

В ближайшее время возможно перепишу... Как допишу, так сразу же обрадую комунити заметкой на сайте
Автор: Grisper
Дата сообщения: 20.04.2006 22:16
mirk
Ага, я свой скрипт тоже хотел из таблички задавать. Но лениво стало писать его
Автор: mirk
Дата сообщения: 25.04.2006 23:13
Список директив: TODO, FIXME, BUG и т.д.

Пробуйте, смотрите, работайте, изменяйте, радуйтесь, плачьте, в общем живите полнокровной жизнью

P.S. Жду комментариев... Заснули а то )))))
Автор: ALeXkRU
Дата сообщения: 26.04.2006 00:33
mirk

Цитата:
Жду комментариев... Заснули а то

да пожалуйста

Цитата:
Код .SciTEUser.properties:
command.name.24.*=Список директив
command.23.*=dofile $(SciteDefaultHome)\\tools\\TodoList.lua.lua
command.mode.24.*=subsystem:lua,savebefore:no

циферки лучше одинаковые поставить, а то SciTE не знает, какой скрипт запустить...
и что за расширение такое *.lua.lua


Добавлено:
и на сайте в IE текст сообщения прокручивается за вертикальную строку - код проверить надо бы
Автор: mirk
Дата сообщения: 26.04.2006 00:43
ALeXkRU
Опа, это какой по счету мой косяк? )))

Циферки и расширение исправил

Кстати, как вам моя консоль? )))

Танцевать будете, что бы код подсветки дал?

P.S. Настроение прекрасное....
Настроение by Андрей Миронов "Песня о шпаге"....

Добавлено:
ALeXkRU
Ну, и где народ?
У нас, что все коммунити пользуется московским временем?
Автор: ALeXkRU
Дата сообщения: 26.04.2006 01:43

Цитата:
Кстати, как вам моя консоль?

симпатишно... хотя, по сравнению с окружением... его тоже стоило бы подрихтовать
Автор: mirk
Дата сообщения: 26.04.2006 01:54
ALeXkRU

Цитата:
его тоже стоило бы подрихтовать

Собираюсь попробовать основной фон сделать темным, и соответственно под него подогнать подсветку, вот только гемор это
Руки дойдут, обязательно сделаю.


Цитата:
симпатишно...

Станцевал? ))
Автор: mozers
Дата сообщения: 30.04.2006 13:02
Дайджест новостей SciTE Neil Hodgson наконец то объявил, что решение mimir о индивидуальных файлах сокращений для конкретного языка программирования включено в официальную CSV версию Теперь это будет выглядеть так:
Код: abbreviations.*.c=$(SciteUserHome)/c_abbrev.properties
Автор: mirk
Дата сообщения: 30.04.2006 17:03

Цитата:
Neil Hodgson наконец то объявил, что решение mimir о индивидуальных файлах сокращений для конкретного языка программирования включено в официальную CSV версию

Mimir, поздравляю.. .
Автор: zvyagaaa
Дата сообщения: 03.05.2006 14:17
А по Паскалю ничего нету что ли кроме подсветки? Ни api файлов, ни возможности компилировать? Подскажите, как к Борланд ДЕльфи 7 прикрутить данное чудо?
Автор: ALeXkRU
Дата сообщения: 03.05.2006 17:54
zvyagaaa
для pascal.api (небольшой список строк) - нашел на форуме Notepad++
[more= смотри здесь...]
сохранить список в файл с именем pascal.api
===============
anyfile
archive
ARRAY
AssignCrt
BEGIN
Black
Blink
Blue
Boolean
Brown
bw40
bw80
Byte
CheckBreak
CheckBreak
CheckEOF
CheckEoF
CheckSnow
CheckSnow
ClrEol
ClrScr
co40
co80
ComStr
CONST
CursorBig
CursorOff
CursorOn
Cyan
DarkGray
DateTime
Delay
DelLine
directory
DirectVideo
DirectVideo
DirStr
DiskFree
DiskSize
DO
DosError
DosExitCode
DosVersion
DOWNTO
END
EnvCount
EnvStr
Exec
ExtStr
fauxiliary
fcarry
FExpand
FileRec
FindClose
FindFirst
FindNext
fmclosed
fminout
fminput
fmoutput
foverflow
fparity
FSearch
fsign
FSplit
fzero
GetCBreak
GetDate
GetEnv
GetFAttr
GetFTime
GetIntVec
GetLongName
GetShortName
GetTime
GetVerify
GotoXY
Green
hidden
HighVideo
InsLine
Integer
Intr
Keep
KeyPressed
LastMode
Lastmode
LightBlue
LightCyan
LightGray
LightGreen
LightMagenta
LightRed
LongInt
LowVideo
Magenta
mono
MSDos
NameStr
NormVideo
NoSound
PackTime
PathStr
ReadKey
readonly
RECORD
Red
Registers
REPEAT
ScreenHeight
ScreenWidth
SearchRec
SetCBreak
SetDate
SetFAttr
SetFTime
SetIntVec
SetTime
SetVerify
Sound
String
SwapVectors
sysfile
TextAttr
TextBackground
TextChar
TextColor
TextMode
TextRec
TO
TYPE
UnpackTime
UNTIL
VAR
volumeid
WhereX
WhereY
WHILE
White
WindMax
WindMin
Window
Word
Write
WriteLn
Yellow
===========[/more]
Автор: zvyagaaa
Дата сообщения: 03.05.2006 19:38
Спасибо! Маловато, конечно, но лучше, чем ничего... А есть у кого хорошо настроенный для паскаля файл? а то в сборке который - там даже комментирование не работает?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869

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


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