Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » SciTE - Open Source Text Editor for Windows & Linux

Модерирует : gyra, Maz

Widok (09-10-2007 14:48): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

Spab



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

A free source code editor for Win32 and X
Русскоязычный форум поддержки

  • Один из самых настраиваемых текстовых редакторов из ныне существующих. Настраивается практически все.
  • Индивидуальная подсветка для разных языков програмирования, фолдинг для классов, функций и структур, авто-дополнение, и т.д. и т.п. ...
     
  • Scite-interest -- Discussion of the SciTE editor
  • Русский сайт SciTE (документация, FAQ, снимки экрана, утилиты, скрипты и т.д. и т.п....)
  • Мечта кодера. статья
  • Burgaud.com - US.SciTE
  • SciTE: Scintilla Text Editor with Extensions
  • Filerx, SideWinder
  • ......
     
       
  • Project file releases
  • Project summary (including basic statistics)
  • Новости со SciTE.ru
     
    Последняя версия редактора - SciTE 1.74
     
    SciTE 1.74 .52Ru-Board Edition [Сборка 20.09.2007]
    Oписание: сборки ядра  
     
    Дружественная тема: Доработка исходного кода и компилирование сборки Ru-Board Edition
     
    Нерешенные задачи и вопросы ( Для умных и талантливых форумчан )
     
    P.S. Если вы используете SciTE для своих нужд, таких как: написание HTML, CSS, Java Script, PHP и др. кода для сайта, или просто вам нравится этот редактор, поставьте пожалуйста ссылку или баннер на сайт - http://scite.ruteam.ru, благодаря этому у сайта повышается индекс цитирования, соответственно увеличивается количество пользователей редактора.

  • Всего записей: 64 | Зарегистр. 02-09-2001 | Отправлено: 03:05 04-06-2002 | Исправлено: mozers, 13:45 04-10-2007
    mozers



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    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)
     
    Как видим, тут нехорошие люди пользуют как пользовательские переменные font.code.comment. которые удобно менять глобально (Щелк - и изменился стиль всех комментов во всех языках) так и фиксированные значения fore:#008000 (котрые надо менять в каждом из языков отдельно - поубивал бы...

    Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 20:50 18-01-2006
    ilyaor



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    хм.. и верно - хрен ответили =) а насчёт первого поста - сие иллюзия =)  был я на борде , правда давно сие было. а про  данный редактор  на русском точно больше нигде не пишут.  даже непонятнопочем почему. ладно . уточним вопрос (продолжим тормозить )
    итак - куда сие прописать
    " 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) "
    пасибки заранее (иначе - дошШшвидания )

    Всего записей: 599 | Зарегистр. 14-01-2006 | Отправлено: 09:01 19-01-2006 | Исправлено: ilyaor, 09:03 19-01-2006
    mozers



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ilyaor
    Цитата:
    и верно - хрен ответили =)  
    А что отвечать? Вопрос подключения и так подробно расписан.
    Если ты не понимаешь - пиши на личный - будем выяснять где эти неясности.
    Я даже не понимаю щас КАК написать, чтоб было понятнее
    Если честно - догадываюсь  где можно ошибиться... Но все это выливается в достаточно большую по объему статью, которую я все редактирую и редактирую...

    Цитата:
    итак - куда сие прописать  
    В SciTEStartup.lua
    Или что там грузится у тебя по директиве
    ext.lua.startup.script=$(SciteDefaultHome)\tools\SciTEStartup.lua
     
    Все ToolsCommand будут работать (т.е. добавятся в меню Tools) только если в SciTEStartup.lua ты прописал соответствующую процедуру.
    Если нет - забивай все эти команды в меню Tools ручками.
     
    Команды эти сами ничего не делают - лишь вызывают соответствующие скрипты, которые и выполняют работу...
    Ну RFTM короче...

    Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 10:26 19-01-2006
    ilyaor



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    вот незадача . расскажу-таки что было на самом деле (разобралси я =))
    думаю, что и другие могут на сие напороться..  
     ToolsCommand (*,'*','*','*')  прописывать в вашем *.lua а не в  User.properties , Global и тд ..
    я-таки по наитию разделил  сам скрипт "тулз" ..
    не смешно , но зато про войну =) беспорно данный способ удобнее.   поэксперементирую и може и что-нибудь своё стоящее сварганю. рид факин мануал тут не при чём =) спасибо за скорую помощь =)

    Всего записей: 599 | Зарегистр. 14-01-2006 | Отправлено: 10:50 19-01-2006
    mozers



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вот и я тоже - разобрался

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

    Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 10:52 20-01-2006
    Grisper

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    У меня есть .api длф LUA
    Как по-человечески сделать раскраску для них?
     
    (Сейчас я просто добавил в lua.properties функции.)
     
    ещё непонятно как сделать чтобы подкрашивались функции self:ISOpened
    двоеточие не понимает =(
    с точкой то же самое работает
    (
    в глобальных  
    chars.tochka=.  
    в луапропертис  
    word.chars.lua=$(chars.tochka)$(chars.alpha)$(chars.numeric)_%
    )

    Всего записей: 52 | Зарегистр. 21-01-2006 | Отправлено: 13:28 21-01-2006
    mozers



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Grisper
    Цитата:
    У меня есть .api длф LUA  
    Как по-человечески сделать раскраску для них?

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

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

    Еще непонятно с файлом какого расширения ты работаешь и как ты хочешь чтобы эти функции были раскрашены? Приведи кусок кода и раскрась его тут (прямо в своем посте) как тебе хочется. Иначе - просто непонятно что ты хочешь.

    Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 01:18 22-01-2006
    Grisper

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Красим 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
     
    }
     

    Всего записей: 52 | Зарегистр. 21-01-2006 | Отправлено: 01:29 22-01-2006 | Исправлено: Grisper, 12:34 22-01-2006
    mozers



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Grisper
    Разве это - LUA скрипт ??? Откуда такое ???

    Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 10:31 23-01-2006
    Grisper

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mozers
    да, компилится и работает.
    LUA как бы умеет объекты вполне себе
    откуда - написал
     
    вопрос прежний - как покрасить?
     
    P.S. это LUA5

    Всего записей: 52 | Зарегистр. 21-01-2006 | Отправлено: 12:02 23-01-2006 | Исправлено: Grisper, 14:29 23-01-2006
    mozers



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Звиняй, дорогой. Серьезно уж что то очень...

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

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

    Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 15:43 23-01-2006
    Grisper

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

    а где он? может попробую переписать
     
    Добавлено:
    Также интересует как вынести эти функции (их раскраску) в отдельный файл, чтоб потом с помощью import его подключить и не загромождать lua.properties

    Всего записей: 52 | Зарегистр. 21-01-2006 | Отправлено: 16:14 23-01-2006
    mozers



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Grisper
    1. Лексер - это SciLexer.dll .В некоторых сборках (Sc1) интегрирован внутрь SciTE.exe. Сырцы - свободно на хомяке.
    2. Так и выноси как хочешь, а потом подключишь (не понял в чем проблема
    Главное  - учесть тот момент, что значения параметров, расположенные по тексту ниже - главнее тех кто выше. Все.

    Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 16:59 23-01-2006
    mimir

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вот уже больше недели использую SciTE, и очень доволен, но вот только folding в SQL немного глючит. Помогает либо заново подключить файл нестроек SQL или свернуть все.
    Ни кто не сталкивался?
    И еще если кому надо могу выложить текст комплита который берет слова из api и из файла.

    Всего записей: 77 | Зарегистр. 14-01-2006 | Отправлено: 08:58 24-01-2006
    dB6



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mimir

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

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

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

    Выкладывай есесно! Посмотрим.

    Всего записей: 408 | Зарегистр. 09-02-2003 | Отправлено: 17:01 24-01-2006
    mimir

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Сижу ни диалапе такчто выкладываю  
    текст процедуры автокомплита для 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;
     
    }
     

    Всего записей: 77 | Зарегистр. 14-01-2006 | Отправлено: 15:36 26-01-2006
    Grisper

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    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

    покрасилось в нужный мне цвет?

    Всего записей: 52 | Зарегистр. 21-01-2006 | Отправлено: 16:04 26-01-2006
    mozers



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    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)

    Файл test.lua у меня раскрасился так:
    Код:
    Game.Init  
    Game.ShowId
     
    Client.Init
    Client.ShowId
     
    Точнее в оригинале разный не цвет сиволов, а цвет фона (просто этот форум не позволяет изменять цвет фона).
    Т.е. как ты и хотел
    Цитата:
    Game.Init Game.ShowId одним стилем, а Client.Init Client.ShowId другим  

     
     
    Добавлено:
    mimir
    Извини, не понял (ну тупой я) как к SciTE подключить твой скрипт?
    Встроенными средствами не получится? (надо устанавливать внешний обработчик)?
    Я так понял что нажатие Ctrl+Enter после написания, допустим WScript. будет вызывать список вариантов завершения (WScript.Echo, WScript.Arguments, WScript.FullName,...),  если таковые имеются в API-файле?
    И, пожалуйста, поподробнее. Очень интересно.
     
    Добавлено:
    ALL
    Хочу поделится с вами двумя серьезными багами SciTE, которые резко тормознули мой процесс автоматизации редактора
    Файл test.vbs:
    Код:
    s = WScript.StdIn.ReadAll
    WScript.Echo s
    WScript.StdOut.Write s
    из .properties:
    Код:
     command.name.47.*=replace_TEST
     command.47.*=wscript "$(SciteDefaultHome)\tools\test.vbs"
     command.input.47.*=$(CurrentSelection)
     command.mode.47.*=subsystem:windows,replaceselection:auto,savebefore:no
     
     
    Бестолковый скрипт читает выделенный в редакторе текст и меняет его на прочитанное (т.е. на то же самое). Все бы ничего, но
    Баг №1: Если выделим русские символы, то с удивлением обнаружим, что они заменились на крякозяблы. Почему? А все потому что SciTE в StdIn отдает текст, всегда в кодировке UTF-8, игнорируя параметр character.set=204
    Баг №2: Если мы запустим этот скрипт, ничего не выделив в редакторе, то получим классный зависон. Почему? Потому что SciTE в таком случае должен отдавать метку EndOfStream, а он не отдает ничего. Вот скрипт и виснет, ожидая конца потока.
    Вот такие унылые баги
    Люди добрые, для кого общение на английском не проблема - пробейте эти баги в офф. форуме - пусть разработчики почешутся. А я уж вам скриптов настрогаю...

    Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 22:38 26-01-2006 | Исправлено: mozers, 12:56 27-01-2006
    mimir

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mozers

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

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

    Просьба сильно не пинать, я честно думал то что это исходник абсолютно понятно.
    А с помощью скрипта этого сделать IMHO нельзя

    Всего записей: 77 | Зарегистр. 14-01-2006 | Отправлено: 07:09 27-01-2006
    mozers



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mimir
    Так все таки:

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

    Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 08:58 27-01-2006
       

    Страницы: 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

    Компьютерный форум Ru.Board » Компьютеры » Программы » SciTE - Open Source Text Editor for Windows & Linux
    Widok (09-10-2007 14:48): лимит страниц. продолжаем здесь


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru