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

» SciTE - Open Source Text Editor for Windows & Linux

Автор: mozers
Дата сообщения: 14.01.2006 23:33
gansA
Переключится в dos866 и запустить скрипт
Примерчик то можно увидеть?

mimir ilyaor
Поздравляю с первым постом, надеюсь что ru-board станет для вас на всю жизнь самым любимим и толковым форумом

Теперь попытаюсь дать ответ:
Возможно, что навру, но хрен еще где в рунете вы получите правильный ответ
Уточняйте - будем решать вместе.
mimir

Цитата:
Никак не получаеться настроить api-файл. Прописываю его в срр.prop, но не работает автокомплит.

api файл служит только для всплывающих подсказок но не для автокомплита.
Автокомплит - встроенная фича. Чтобы работал ничего подключать не надо, достаточно 1 раз написать в тексте слово полностью - дальше оно будет дописываться автоматом (если autocompleteword.automatic=1) или по Ctrl+Enter.

Цитата:
как из h файла сделать api

Насколько я знаю С++ (я его вообще не знаю) - никак . Только ручками...
Структура API-файла не слишком сложна... (Вообще для С уже давно существует огромадный API файл. Неужели в нем чего то еще не хватает ?)

ilyaor

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

Поконкретней, пожалуйста. Что не работает ?
Если дело касается только
Цитата:
ни Перевод в ВЕРХНИЙ (Ctrl+Shift+U) и нижний регистр (Ctrl+U)
то пиши на личный - mozers(собака)mail.ru разберемся постепенно почему только у тебя не работает.

Цитата:
для быстрого добавления команд в меню Tools

Чет не понял тоже не работает ??? - пиши на личный, поскольку частная проблема то...
Автор: mimir
Дата сообщения: 15.01.2006 11:57
Скачал инсталлятор, установил, кинул сpp.api в директорию Scite, раскоментировал определение cpp.api и все вроде заработало как надо.
Автокомплит работает из api файла(да и доке вроде написано что должно:

For example, the setting
***
to provide autocompletion and calltips for some of the C file functions.)

Вопрос по h-файлам возник из-за того, чту уменя много своих файлов(в проэкте), с описанием классов. Так вот мнебы хотелось их перевести в api. И еще как сделать чтобы выпадал список ф. относящийся к данному объекту. Насколько я понял, что никак.
Это очень неудобно когда есть несколько классов, а в каждом из них множество ф. начинающихся одинаково.

Добавлено:
Да и еще ссылка
http://scite.ruteam.ru/translation
не работает, а жаль
Автор: mimir
Дата сообщения: 15.01.2006 21:27
Автокомплит веселая штука.
Существует в двух вариантах:
ID_COMPLITE - Берет данные только из api
ID_COMPLITEWORD - Берет данные только из самого файла.
Для себя я вроде сделал сборку шоб брала и от туда и от туда, но получилось немного кривовато, но работает. Щас попробую до ума довести.
Еще хочу сделать комплит для методов классов. Вроде придумал, единственная сложность это определить сам тип по названию объекта. Мож кто с этим сталкивался.
Автор: mozers
Дата сообщения: 16.01.2006 09:50
mimir

Цитата:
Да и еще ссылка
http://scite.ruteam.ru/translation
не работает, а жаль

На сайте - ВЕЛИКАЯ перестройка. Начинаем новую жизнь Кое что пока не работает НО БУДЕТ.
Если дело касается только фейса, то перевод можно взять на хомяке. Перевод документации скоро появится на http://scite.ruteam.ru (сейчас могу дать старый вариант - стучи в ПМ, мыло, асю).


Цитата:
Для себя я вроде сделал сборку шоб брала и от туда и от туда, но получилось немного кривовато, но работает. Щас попробую до ума довести.
Еще хочу сделать комплит для методов классов.

Давай думать вместе? Интересно же! Выкладывай что получается - будем доводить. Если слишком сыро - тогда опять в личку.
Автор: mimir
Дата сообщения: 17.01.2006 07:55
Если честно именно сейчас много работы.
В двух словах там есть 2 ф.
StartAutocomplit и StartAutocomplitWord
Так вот одну из них надо дополнить другой, но у меня просто не получаеться
отказаться от добавочного выделения памяти и одного копирования.
Хотя и в таком варианте все работает также быстро.
Про автокомплит классов я этим заниматься врятли буду т.к. для начала нужно сделать определение типа по обьекту. Как это делать ели честно я даже не предстовляю
Автор: VictorGS
Дата сообщения: 17.01.2006 19:46

Цитата:
Как сделать комментарии курсивом ???


Пол дня ковырялся, нашел:
font.comment=font:Courier New,fore:#808080,back:#FFFFF0,bold,italics,underlined
где
font: - имя шрифта
fore: - цвет текста
back: - цвет фона
bold - жирный
italics - наклонный
underlined - подчеркнутый

Найдено, как ни странно, в http://scite.ruteam.ru/old/sciteDocRu.html - Определяемые переменные в файлах настроек - style.*.stylenumber






Добавлено:
Вопрос:
почему не катит такое:
menukey.view.toggle_current_fold=Ctrl+PageUp

а такое катит:

# Переопределение быстрых клавиш
user.shortcuts=\
#Ctrl+Home|IDM_EXPAND|\
#Ctrl+PgUp|IDM_EXPAND|\
Ctrl+PageUp|IDM_EXPAND|\
Автор: mozers
Дата сообщения: 17.01.2006 20:57
VictorGS
Цитата:
Определяемые переменные в файлах настроек
Т.е. если ты переменную обозвал именем font.comment она комментарием от этого не станет
Ты просто создал свою собственную переменную и присвоил ей значение.
Не более того.
Вот если ты еще потом напишешь так:
style.*.1=$(font.comment)
то - совсем другое дело

Цитата:
почему не катит такое:
У меня тоже этот menukey. ни под каким соусом не работает
НАРОД! А у кого нить пашет ???

Цитата:
а такое катит:
А че так не нравится? Все так и поступают обычно...
Автор: VictorGS
Дата сообщения: 18.01.2006 08:52

Цитата:
Т.е. если ты переменную обозвал именем font.comment она комментарием от этого не станет
Ты просто создал свою собственную переменную и присвоил ей значение.
Не более того.
Вот если ты еще потом напишешь так:
style.*.1=$(font.comment)
то - совсем другое дело

НО нигде в настройках "style.*.1=" у меня нету. А изменение переменной font.comment влияет на отображение коментариев! (//, /* */, #, и т.д.)


Цитата:
А че так не нравится? Все так и поступают обычно...

Да пока и я обхожусь!, но, мне кажется, menukey больше подходит для переопределения горячих клавиш команд, которые есть в меню.
Автор: Romiras
Дата сообщения: 18.01.2006 12:24
Я хочу выделить мышой текст и обрамить его тегами <code></code> с помощью горячих клавиш, например, Ctrl-Alt-P.
Как?
Автор: mirk
Дата сообщения: 18.01.2006 12:30
LUA/HTML теги
Там пример LUA скрипта обрамляющего текст любыми символами выбранными вами.
Автор: mozers
Дата сообщения: 18.01.2006 19:50
VictorGS
Цитата:
НО нигде в настройках "style.*.1=" у меня нету
Есть
Ты забыл поглядеть файлы, подключенные директивой import
Это, обычно .properties различных языков программирования. В твоем случае это - cpp.properties:
Код: # Comment: /* */.
style.cpp.1=fore:#008000,$(font.code.comment.box)
# Line Comment: //.
style.cpp.2=fore:#008000,$(font.code.comment.line)
# Doc comment: block comments beginning with /** or /*!
style.cpp.3=$(colour.code.comment.doc),$(font.code.comment.doc)
Автор: ilyaor
Дата сообщения: 19.01.2006 08:01
хм.. и верно - хрен ответили =) а насчёт первого поста - сие иллюзия =) был я на борде , правда давно сие было. а про данный редактор на русском точно больше нигде не пишут. даже непонятнопочем почему. ладно . уточним вопрос (продолжим тормозить )
итак - куда сие прописать
" ToolsCommand (8,'Перевести в ВЕРХНИЙ регистр','InvertCase U','Ctrl+Shift+U')
ToolsCommand (9,'Перевести в нижний регистр','InvertCase L','Ctrl+U')
ToolsCommand (10,'Увеличить шрифт','Zoom_In','Ctrl+KeypadPlus')
ToolsCommand (11,'Уменьшить шрифт','Zoom_Out','Ctrl+KeypadMinus')
ToolsCommand (32,'Проверка орфографии','SpellCheck $(SciteDefaultHome)\\tools\\SpellCheck.vbs','')" ???
как я понимаю - должен был заработать в тулз пунктик для автоматической установки ? так вот - нельзя ли поточнее написать процесс установким того пкнктика. вот. вопрос естественно к автору сего творения "- ======================================================
-- Функция для быстрого добавления команд в меню Tools
-- (Для тех, кому лень вручную прописывать 5 строк для каждой команды в .properties) "
пасибки заранее (иначе - дошШшвидания )
Автор: mozers
Дата сообщения: 19.01.2006 09:26
ilyaor
Цитата:
и верно - хрен ответили =)
А что отвечать? Вопрос подключения и так подробно расписан.
Если ты не понимаешь - пиши на личный - будем выяснять где эти неясности.
Я даже не понимаю щас КАК написать, чтоб было понятнее
Если честно - догадываюсь где можно ошибиться... Но все это выливается в достаточно большую по объему статью, которую я все редактирую и редактирую...

Цитата:
итак - куда сие прописать
В SciTEStartup.lua
Или что там грузится у тебя по директиве
ext.lua.startup.script=$(SciteDefaultHome)\tools\SciTEStartup.lua

Все ToolsCommand будут работать (т.е. добавятся в меню Tools) только если в SciTEStartup.lua ты прописал соответствующую процедуру.
Если нет - забивай все эти команды в меню Tools ручками.

Команды эти сами ничего не делают - лишь вызывают соответствующие скрипты, которые и выполняют работу...
Ну RFTM короче...
Автор: ilyaor
Дата сообщения: 19.01.2006 09:50
вот незадача . расскажу-таки что было на самом деле (разобралси я =))
думаю, что и другие могут на сие напороться..
ToolsCommand (*,'*','*','*') прописывать в вашем *.lua а не в User.properties , Global и тд ..
я-таки по наитию разделил сам скрипт "тулз" ..
не смешно , но зато про войну =) беспорно данный способ удобнее. поэксперементирую и може и что-нибудь своё стоящее сварганю. рид факин мануал тут не при чём =) спасибо за скорую помощь =)
Автор: mozers
Дата сообщения: 20.01.2006 09:52
Вот и я тоже - разобрался

После долгих и мучительных поисков наконец то было найдено решение, позволяющее элегантно возвращать значение из внешних скриптов в редактор.
Заключается он в том, что результат необходимо писать в StdIn и тогда SciTE подхватит возвращаемое значение
Теперь открыта возможность полноценной работы с мощнейшими по возможностям WSH скриптами!
Потеснись LUA Ща мы такое изобразим что тебе и не снилось!!!

Вот полезный примерчик:
- Вызывает системный диалог выбора цвета
- Результат выбора заменяет выделенное в редакторе значение цвета

Те щас выделяем к примеру этот текст и выбираем в меню "Выбор цвета".
Скрипт сам найдет в выделенном вот этот #DF4FD0 цвет и в стандартном виндусовом окне выбора цвета, Вы сможете его сменить на другой. После выбора это значение автоматом перепишется.
Автор: Grisper
Дата сообщения: 21.01.2006 12:28
У меня есть .api длф LUA
Как по-человечески сделать раскраску для них?

(Сейчас я просто добавил в lua.properties функции.)

ещё непонятно как сделать чтобы подкрашивались функции self:ISOpened
двоеточие не понимает =(
с точкой то же самое работает
(
в глобальных
chars.tochka=.
в луапропертис
word.chars.lua=$(chars.tochka)$(chars.alpha)$(chars.numeric)_%
)
Автор: mozers
Дата сообщения: 22.01.2006 00:18
Grisper
Цитата:
У меня есть .api длф LUA
Как по-человечески сделать раскраску для них?

Чего красим то?
Файлы *.api или *.lua?
У LUA разработчики сами постаралиь. Имхо - нормальная раскраска.
Файлы .api хрен раскрасишь (слишком они разные по структуре, несмотря на одинаковое расширение).

Цитата:
ещё непонятно как сделать чтобы подкрашивались функции self:ISOpened

Еще непонятно с файлом какого расширения ты работаешь и как ты хочешь чтобы эти функции были раскрашены? Приведи кусок кода и раскрась его тут (прямо в своем посте) как тебе хочется. Иначе - просто непонятно что ты хочешь.
Автор: Grisper
Дата сообщения: 22.01.2006 00:29
Красим LUA
хочу поменять цвет фона у self.QUESTNAME self:IsOpened Game.ShowId
3 разных цвета фона

пример кода :


Код:
QuestMy1 = {

QUESTNAME = "questmy1"
, STATE_OPENED = 1
, STATE_DONE = 2

, IsOpened = function (self)
return player[self.QUESTNAME.."state"]==self.STATE_OPENED
end

...

, Click1 = function (self, id)
Game.ShowId(id)
end

, Click2 = function (self, id)
if self:IsOpened() then self:Click1 (id) end
end

}
Автор: mozers
Дата сообщения: 23.01.2006 09:31
Grisper
Разве это - LUA скрипт ??? Откуда такое ???
Автор: Grisper
Дата сообщения: 23.01.2006 11:02
mozers
да, компилится и работает.
LUA как бы умеет объекты вполне себе
откуда - написал

вопрос прежний - как покрасить?

P.S. это LUA5
Автор: mozers
Дата сообщения: 23.01.2006 14:43
Звиняй, дорогой. Серьезно уж что то очень...

Цитата:
Сейчас я просто добавил в lua.properties функции
Я бы поступил так же.

Цитата:
двоеточие не понимает
Похоже на правду Имхо - только лексер переписывать...
Если сам что придумаешь, не сочти за труд, - стуни сюда.

Может кто поквалифицированней ответит?
Автор: Grisper
Дата сообщения: 23.01.2006 15:14

Цитата:
Похоже на правду Имхо - только лексер переписывать...

а где он? может попробую переписать

Добавлено:
Также интересует как вынести эти функции (их раскраску) в отдельный файл, чтоб потом с помощью import его подключить и не загромождать lua.properties
Автор: mozers
Дата сообщения: 23.01.2006 15:59
Grisper
1. Лексер - это SciLexer.dll .В некоторых сборках (Sc1) интегрирован внутрь SciTE.exe. Сырцы - свободно на хомяке.
2. Так и выноси как хочешь, а потом подключишь (не понял в чем проблема
Главное - учесть тот момент, что значения параметров, расположенные по тексту ниже - главнее тех кто выше. Все.
Автор: mimir
Дата сообщения: 24.01.2006 07:58
Вот уже больше недели использую SciTE, и очень доволен, но вот только folding в SQL немного глючит. Помогает либо заново подключить файл нестроек SQL или свернуть все.
Ни кто не сталкивался?
И еще если кому надо могу выложить текст комплита который берет слова из api и из файла.
Автор: dB6
Дата сообщения: 24.01.2006 16:01
mimir

Цитата:
но вот только folding в SQL немного глючит

Он не только в SQL немного глючит
В PHP плохо понимает here-documents:/


Цитата:
И еще если кому надо могу выложить текст комплита который берет слова из api и из файла.

Выкладывай есесно! Посмотрим.
Автор: mimir
Дата сообщения: 26.01.2006 14:36
Сижу ни диалапе такчто выкладываю
текст процедуры автокомплита для api+файл сдесь.
Работает и ладно

Начал разбираться с фолдингом SQL.
Может ктонибудь пытался раньше разбираться, буду рад любой помощи.

bool SciTEBase::StartAutoComplete() {
SString line = GetLine();
    int current = GetCaretInLine();
    if (current >= line.size())
        return false;

    int startword = current;
    // Autocompletion of pure numbers is mostly an annoyance
    bool allNumber = true;
    while (startword > 0 && wordCharacters.contains(line[startword - 1])) {
        startword--;
        if (line[startword] < '0' || line[startword] > '9') {
            allNumber = false;
        }
    }
    bool onlyOneWord=false;
    if (startword == current || allNumber)
        return true;
    SString root = line.substr(startword, current - startword);
    int doclen = LengthDocument();
    TextToFind ft = {{0, 0}, 0, {0, 0}};
    ft.lpstrText = const_cast<char*>(root.c_str());
    ft.chrg.cpMin = 0;
    ft.chrgText.cpMin = 0;
    ft.chrgText.cpMax = 0;
    int flags = SCFIND_WORDSTART | (autoCompleteIgnoreCase ? 0 : SCFIND_MATCHCASE);
    int posCurrentWord = SendEditor(SCI_GETCURRENTPOS) - root.length();
    unsigned int minWordLength = 0;
    unsigned int nwords = 0;

    // wordsNear contains a list of words separated by single spaces and with a space
    // at the start and end. This makes it easy to search for words.
    SString wordsNear;
    wordsNear.setsizegrowth(1000);
    wordsNear += " ";

    for (;;) {    // search all the document
        ft.chrg.cpMax = doclen;
        int posFind = SendEditorString(SCI_FINDTEXT, flags, reinterpret_cast<char *>(&ft));
        if (posFind == -1 || posFind >= doclen)
            break;
        if (posFind == posCurrentWord) {
            ft.chrg.cpMin = posFind + root.length();
            continue;
        }
        // Grab the word and put spaces around it
        const unsigned int wordMaxSize = 800;
        char wordstart[wordMaxSize];
        wordstart[0] = ' ';
        GetRange(wEditor, posFind, Platform::Minimum(posFind + wordMaxSize - 3, doclen), wordstart + 1);
        char *wordend = wordstart + 1 + root.length();
        while (iswordcharforsel(*wordend))            wordend++;
        *wordend++ = ' ';
        *wordend = '\0';
        unsigned int wordlen = wordend - wordstart - 2;
        if (wordlen > root.length()) {
            if (!wordsNear.contains(wordstart)) {    // add a new entry
                wordsNear += wordstart + 1;
                if (minWordLength < wordlen)
                    minWordLength = wordlen;

                nwords++;
                if (onlyOneWord && nwords > 1) {
                    return true;
                }
            }
        }
        ft.chrg.cpMin = posFind + wordlen;
    }
    
    if (apis) {
        char *words = apis.GetNearestWords(root.c_str(), root.length(),
                                            autoCompleteIgnoreCase, calltipParametersStart[0]);
        if (words) {
wordsNear += words;
            delete []words;
        }
    }

    size_t length = wordsNear.length();
if ((length > 2) && (!onlyOneWord || (minWordLength > root.length()))) {
        WordList wl;
        wl.Set(wordsNear.c_str());
        char *words = wl.GetNearestWords("", 0, autoCompleteIgnoreCase);
EliminateDuplicateWords(words);
        SendEditorString(SCI_AUTOCSHOW, root.length(), words);
        delete []words;
    } else {
        SendEditor(SCI_AUTOCCANCEL);
    }
    return true;

}

Автор: Grisper
Дата сообщения: 26.01.2006 15:04
mozers
в lua.properties написано:

Цитата:
# I keep keywords5, 6, 7 & 8 for other libraries    


я вот хочу их заюзать чтобы покрасить функции Game.Init Game.ShowId одним стилем,
а Client.Init Client.ShowId другим
(сейчас я просто добавил эти имена в keywordclass2.lua4 keywordclass3.lua4)

что нужно в lua.properties прописать чтобы добавленное

Цитата:
keywords7.lua=Client.Init Client.ShowId

покрасилось в нужный мне цвет?
Автор: mozers
Дата сообщения: 26.01.2006 21:38
Grisper
Я сделал так: В оригинальный lua.properties добавил
Код: keywordclass5.lua5=Game.Init Game.ShowId
keywordclass6.lua5=Client.Init Client.ShowId
keywords5.$(file.patterns.lua)=$(keywordclass5.lua5)
keywords6.$(file.patterns.lua)=$(keywordclass6.lua5)
Автор: mimir
Дата сообщения: 27.01.2006 06:09
mozers

Цитата:
Извини, не понял (ну тупой я) как к SciTE подключить твой скрипт?


Все очень просто.
1. открыть SciTE.
2. Открыть SciteBase.cxx.
3. Заменить там функцию.
4. Компилируем.
5. Enjoy

Просьба сильно не пинать, я честно думал то что это исходник абсолютно понятно.
А с помощью скрипта этого сделать IMHO нельзя
Автор: mozers
Дата сообщения: 27.01.2006 07:58
mimir
Так все таки:

Цитата:
Я так понял что нажатие Ctrl+Enter после написания, допустим WScript. будет вызывать список вариантов завершения (WScript.Echo, WScript.Arguments, WScript.FullName,...), если таковые имеются в API-файле?
Да ???

Вообще круто, что ты на С пишешь. Может и баги, про которые я говорил, поправить можешь?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869

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


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