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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    codewarlock1101



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Небольшое дополнение... Теперь выдеделние внутри строки не снимается, когда перемещаешь одну строку.
     

    Код:
     
    local sel_start_line = editor:LineFromPosition(editor.SelectionStart)
    local sel_end_line = editor:LineFromPosition(editor.SelectionEnd)
    local slend=editor:GetLineSelEndPosition(sel_end_line)
    local slend2=editor:GetLineSelEndPosition(sel_end_line-1)
    local nap=0
    local sel_txt=editor:GetSelText()
    if slend==slend2 then  
     nap=1
    end
    if gorizont==1 then
        for i = sel_start_line, sel_end_line-nap do
          editor.LineIndentation [i]=editor.LineIndentation [i]+-1*d
        end
    else
         if (sel_txt == "") or (sel_start_line==sel_end_line) then
         local xsel_s=editor.SelectionStart-editor:PositionFromLine(sel_start_line)
         local xsel_e=editor.SelectionEnd-editor:PositionFromLine(sel_end_line)
     
         if d==1 then
           if sel_end_line-nap<editor.LineCount-1 then
            editor:LineDown()  
            editor:LineTranspose()
           else  
              d=0
           end
         else
             editor:LineTranspose()  
             editor:LineUp()
         end
         if (sel_txt ~= "")  then
           xsel_s = editor:PositionFromLine(sel_start_line+d)+xsel_s
           xsel_e = xsel_s + string.len(sel_txt)
           editor:SetSel(xsel_s,xsel_e)
         end
        else
     
            if (sel_start_line>0 and d==-1) or (sel_end_line-nap<editor.LineCount-1 and d==1) then
                editor:BeginUndoAction()
                if d==1 then
                -- Down
                    editor:GotoLine(sel_end_line)
                    for i = sel_end_line-nap, sel_start_line, -1 do
                        editor:LineTranspose()
                        editor:LineUp()
                    end
                else
                -- Up
                    editor:GotoLine(sel_start_line)
                    for i = sel_start_line, sel_end_line-nap do
                        editor:LineTranspose()
                        editor:LineDown()
                    end
                end
                local sel_start = editor:PositionFromLine(sel_start_line+d)
                nap=math.abs(nap-1)
                local sel_end = editor:PositionFromLine(sel_end_line+d+nap)
                editor:SetSel(sel_start,sel_end)
                editor:EndUndoAction()
            end
        end
    end
     

     
     
    Вопрос Всем!
    Как думаете, нужно ли реализовать перемещение кусочка текста (то есть выделил кусочек - только кусочек и двигаешь)... Наработка уже есть, вот только на счет ее пользы сомневаюсь.... Ваши предложения!

    Всего записей: 92 | Зарегистр. 12-03-2005 | Отправлено: 11:08 26-10-2006 | Исправлено: codewarlock1101, 11:13 26-10-2006
    vladvro



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

    Цитата:
    Как думаете, нужно ли реализовать перемещение кусочка текста (то есть выделил кусочек - только кусочек и двигаешь)...

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

    Всего записей: 281 | Зарегистр. 05-04-2006 | Отправлено: 17:55 26-10-2006
    codewarlock1101



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vladvro
    Багов нет! И код не особо усложняется...

    Всего записей: 92 | Зарегистр. 12-03-2005 | Отправлено: 18:46 26-10-2006
    vladvro



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

    Цитата:
    Багов нет! И код не особо усложняется...

    гуд, а этот кусочек двигается по всем направлениям, вправо, влево, вверх, вниз?

    Всего записей: 281 | Зарегистр. 05-04-2006 | Отправлено: 09:13 27-10-2006
    codewarlock1101



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vladvro
    Влево-вправо (от вверх-вниз отказался, потому что меняет "концепцию" скрипта - удобство по перемещению строк - потому что когда пытешься перетащить кусок через пустую строку он сам становится строкой и как кусок перемещаться не хочет, да и вообще - вырезать/вставить для перемещения на дальние дистанции намного удобнее и привычнее).
    А вот таскать в одной строке влево вправо - это удобно....

    Код:
     
    --[[***********************************************************************************************  
    *  PIE_MOVE_TYPE
    *     0 Не премещать
    *     1 Для цикличного перемещения по соседним строкам
    *     2 Для цикличного перемещения по одной строке
    *     3 блокировка цикличности
    *************************************************************************************************]]
        local PIE_MOVE_TYPE=2
        local sel_start_line = editor:LineFromPosition(editor.SelectionStart)
        local sel_end_line = editor:LineFromPosition(editor.SelectionEnd)
        local slend=editor:GetLineSelEndPosition(sel_end_line)
        local slend2=editor:GetLineSelEndPosition(sel_end_line-1)
        local sel_txt=editor:GetSelText()    
        local nap=0
           
        if slend==slend2 then  
          nap=1
        end
        local anti_nap=math.abs(nap-1)
      if gorizont==1 then
            if PIE_MOVE_TYPE==0 or (sel_start_line~=sel_end_line or sel_txt=="" or (editor:PositionFromLine(sel_start_line)==editor.SelectionStart and editor.LineEndPosition[sel_end_line]==editor.SelectionEnd)) then
          for i = sel_start_line, sel_end_line-nap do
                editor.LineIndentation [i]=editor.LineIndentation [i]+d*(-1)
              end
            else
            if editor.SelectionStart~=0 or d==-1 then  
                editor:ReplaceSel('')
                if editor.SelectionStart==editor:PositionFromLine(sel_start_line) and d==1 then
                  if PIE_MOVE_TYPE==1 then editor:CharLeft() end
                  if PIE_MOVE_TYPE==1 or PIE_MOVE_TYPE==3 then editor.SelectionStart=editor.SelectionStart+d end
                  if PIE_MOVE_TYPE==2 then editor.SelectionStart=editor.LineEndPosition[sel_end_line]+d end
                end
                if editor.SelectionStart==editor.LineEndPosition[sel_start_line] and d==-1 then
                  if PIE_MOVE_TYPE==1 then editor:CharRight() end
                  if PIE_MOVE_TYPE==1 or PIE_MOVE_TYPE==3 then editor.SelectionStart=editor.SelectionStart+d end
                  if PIE_MOVE_TYPE==2 then editor.SelectionStart=editor:PositionFromLine(sel_start_line)+d end
                end
                editor.SelectionStart=editor.SelectionStart+(-1)*d
                local strt=editor.SelectionStart
                editor:InsertText(editor.SelectionStart, sel_txt)  
                if d==1 then
                  editor.SelectionEnd=editor.SelectionStart-1
                  editor.SelectionStart=editor.SelectionStart-string.len(sel_txt)
                else
                  editor.SelectionStart=strt
     
                  editor.SelectionEnd=editor.SelectionStart+string.len(sel_txt)
                end  
            end
            end
      else
          if (sel_txt == "") or (sel_start_line==sel_end_line) then
              local xsel_s=editor.SelectionStart-editor:PositionFromLine(sel_start_line)
              local xsel_e=editor.SelectionEnd-editor:PositionFromLine(sel_end_line)
          if d==1 then
           if sel_end_line-nap<editor.LineCount-1 then
             editor:LineDown()  
             editor:LineTranspose()
           else  
             d=0
           end
          else
            editor:LineTranspose()  
            editor:LineUp()
          end
          if (sel_txt ~= "")  then
            xsel_s = editor:PositionFromLine(sel_start_line+d)+xsel_s
            xsel_e = xsel_s + string.len(sel_txt)
            editor:SetSel(xsel_s,xsel_e)
          end
        else
     
          if (sel_start_line>0 and d==-1) or (sel_end_line-nap<editor.LineCount-1 and d==1) then
            editor:BeginUndoAction()
            if d==1 then
            -- Down
                editor:GotoLine(sel_end_line+anti_nap)
                for i = sel_end_line-nap+anti_nap, sel_start_line+anti_nap, -1 do
                  editor:LineTranspose()
                  editor:LineUp()
                end
            else
            -- Up
                editor:GotoLine(sel_start_line)
                for i = sel_start_line, sel_end_line-nap do
                  editor:LineTranspose()
                  editor:LineDown()
                end
            end
            local sel_start = editor:PositionFromLine(sel_start_line+d)
            local sel_end = editor:PositionFromLine(sel_end_line+d+anti_nap)
            editor:SetSel(sel_start,sel_end)
            editor:EndUndoAction()
          end
        end
      end
     

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

    Всего записей: 92 | Зарегистр. 12-03-2005 | Отправлено: 11:15 27-10-2006 | Исправлено: codewarlock1101, 12:30 27-10-2006
    vladvro



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    всем
    натолкнулся на баг:
    если в конфиге задан параметр code.page=1251, то перестает работать переключение кодировок (файл->кодировка), точнее переключить в UTF-8 получается, а вот обратно уже никак.

    Всего записей: 281 | Зарегистр. 05-04-2006 | Отправлено: 14:30 27-10-2006
    codewarlock1101



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vladvro
    Да... Косячина еще та! http://slil.ru/23310964 вот что бывает когда перекодишь слово "Привет!" и жмакнешь какой-нидь хоткей... Глюкает через раз....

    Всего записей: 92 | Зарегистр. 12-03-2005 | Отправлено: 15:04 27-10-2006
    mozers



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    codewarlock1101
    К сожалению, ситуация знакома. Или зависания или unknown software exception
    Избежать этого можно только одним способом (другого, увы, не нашел):
    Компилить ядро только в Microsoft Visual Studio .NET 2003 (ядро в последней сборке откомилено именно в нем, а ты, очевидно, его заменил...)
    Я обычно проверяю работоспособность SciTE пытаясь сосчитать 2+2 в Калькуляторе от Kein-Hong Man (он есть в сборке)

    Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 14:31 28-10-2006 | Исправлено: mozers, 14:52 28-10-2006
    mozers



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vladvro
    Цитата:
    если в конфиге задан параметр code.page=1251, то перестает работать переключение кодировок (файл->кодировка), точнее переключить в UTF-8 получается, а вот обратно уже никак
    Есть такое дело. Недаром Нейл грозился попортить жизнь всем пользователям пользующимся кодировкой, отличной от тех что описаны в HELP.
    Хотя выход нашелся на удивление простой - грохаем строчку code.page=1251 и все работает просто прекрасно

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

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

    Цитата:
     
    если в конфиге задан параметр code.page=1251, то перестает работать переключение кодировок (файл->кодировка), точнее переключить в UTF-8 получается, а вот обратно уже никак
     

    Ну вот, еще одна проблема которой нет в 1.68
     
    Мне по работе приходится писать на MapBasic, но компилятор выдает ошибки в формате, который Scite не понимает (т.е. по двойному щелчку не переходит на строку с ошибкой). Можно ли задать формат строки с ошибкой? Если нет, то можно ли повесить обработчик на появление строки в окне output на конкретный лексер? Сейчас я вижу только возможность навесить свой обработчик на OnOutputLine, но как определить какой лексер в активном буфере не знаю

    Всего записей: 7 | Зарегистр. 20-01-2006 | Отправлено: 10:13 30-10-2006
    pete

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

    Цитата:
    Компилить ядро только в Microsoft Visual Studio .NET 2003

    Собрал с использованием mingw. Тест с калькулятором проходит После перекодировки хоткеи работают. Правда в 8-bit не перекодирует после UTF, но это надо в консерватории править насколько я понял.

    Всего записей: 7 | Зарегистр. 20-01-2006 | Отправлено: 09:23 31-10-2006
    mozers



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    pete
    Цитата:
    Можно ли задать формат строки с ошибкой?

    На офф. форуме Neil Hodgson 8 июня отвечал на аналогичный вопрос:
    Цитата:
    > 2.  How do I tell SciTE how to parse the error messages so that it
    >      will move to the correct line (and column?) in the source file?
    >      I've read something documenting "output.format", but don't know
    >      how to link that with this command. Can I define a regular expression
    >      telling SciTE how to parse the message, or is this hard-coded?
     
       It is hard coded so you'll have to modify the source code.
    Classification of the type of message is performed by
    scintilla/src/LexOthers.cxx RecogniseErrorListLine and decoding into
    file/line is performed by scite/src/SciTEBuffers.cxx DecodeMessage. It
    is done this way to allow recognising the messages produced by
    different tools within one session without the overhead of matching
    many regular expressions against each line.


    Цитата:
    Сейчас я вижу только возможность навесить свой обработчик на OnOutputLine, но как определить какой лексер в активном буфере не знаю  

    Так editor.Lexer и всех делов. Пример вывода текстового значения я тут давал.
     
    Да и проблему с "8-bit после UTF" проблемой не считаю. Чтобы убрать code.page=1251 из .properties даже не надо быть программистом.
     
    Добавлено:

    Цитата:
    Собрал с использованием mingw
    А это что за зверь? (Я - неграмотный).
    Можно компилить без установки как описано тут?

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



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ВСЕМ
    Как бы программно менять размер output'а ?
    props["output.horizontal.size"]="800" например переменную устанавливает, но SciTE ее не перечитывает.... так бы очень удобно было
    mozers
    Да, бинарник я заменил последней поделкой HSolo.
    Когда будете вставлять в сборку эту поделку, подумайте на тему хранения менюшных команд в конфиге - я предложение выкладывал (ничего не меняется, просто все меню-команды иерархически упорядочены и  находятся в разделе User Submenu (где возле каждой через два слеша написано имя вызываемой мульки)). И не нужно для настройки меню шмыгать из секции в секцию....
     
    Оффтоп - Microsoft Visual Studio .NET 2003 - платный?

    Всего записей: 92 | Зарегистр. 12-03-2005 | Отправлено: 11:51 31-10-2006
    pete

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

    Цитата:
    А это что за зверь? (Я - неграмотный).

    Это портированный под винду gcc, заголовочные файлы win32api и т.д. http://mingw.org  

    Цитата:
    Можно компилить без установки как описано тут?

    Можно, скачать дистрибутив, прописать в path, и вперед

    Всего записей: 7 | Зарегистр. 20-01-2006 | Отправлено: 13:23 31-10-2006
    mozers



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    pete
    Цитата:
    http://mingw.org
    14Mb однако... Оно конечно не Visual Studio но и не 2МБ кастрированного Borland C++ Compiler.
    Вот кто бы почикал этот дистрибутивчик на предмет "лишних" файлов, там глядишь мегабайтиков 10 и сократилось бы... Написал бы батничек для компиляции, чтоб любой чайник мог SciTE изготовить с одной кнопки...
    На scite.ruteam.ru ждут новых авторов
     
    codewarlock1101
    Цитата:
    props["output.horizontal.size"]="800" например переменную устанавливает, но SciTE ее не перечитывает....  
    Как выяснилось он много когда "не перечитывает"...
    В новой сборке некоторые скрипты убраны из меню Tools. Теперь скрипты смены регистра, Ctrl+F11, установка ReadOnly вызываются непосредственно из главного меню, подменяя собой встроенные команды. Но тут как раз и выплыла это проблема.
    Сейчас с ней борется vladvro. Я думаю - победит
    Неохота недоведенную сборку выкладывать... Все думаю о ftp аккаунте для разобранного по файлам дистрибутива, в который каждый мог бы вносить свои изменения...
     
    По поводу твоего замечательного скрипта:
    Если в перемещаемом вправо выделении имеется пустая строка, то она постепенно заполняется пробелами. Так бесит... Может поправишь чтоб ничего в пустые строки не вставлялось?

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



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mozers
    Не вопрос. Подправлю. Твое мнение - оставлять или нет перетаскивание части строки (сам я этим не пользуюсь).
    ***
    Засунуть следующую строку в условие:

    Код:
     
            if string.gsub(editor:textrange(editor:PositionFromLine(i),editor.LineEndPosition[i]),' ','')~='' then
                editor.LineIndentation [i]=editor.LineIndentation [i]+d*(-1)
            end
     

    Всего записей: 92 | Зарегистр. 12-03-2005 | Отправлено: 22:58 03-11-2006 | Исправлено: codewarlock1101, 23:47 03-11-2006
    mozers



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    codewarlock1101
    Цитата:
    оставлять или нет перетаскивание части строки (сам я этим не пользуюсь)  
    Я - тоже. Но еще в сборке от Moon_aka_Sun показалось дико прикольным. ОСТАВЛЯТЬ однозначно

    Цитата:
    Засунуть следующую строку в условие
    Ты быстр как пуля Только таких строк в твоем скрипте не наблюдается. Куда сувать?

    Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 00:17 04-11-2006
    codewarlock1101



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mozers
    Ё-маё! в скрипте, на который ты дал ссылку, эта строка есть   - Смотри первый цикл for или ищи строку по фразе editor.LineIndentation

    Всего записей: 92 | Зарегистр. 12-03-2005 | Отправлено: 19:50 04-11-2006 | Исправлено: codewarlock1101, 20:03 04-11-2006
    mozers



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    codewarlock1101
    Действительно есть (простите, системный сбой)  
    А вообще, отредактировал бы ты свой пост -  и всех делов

    Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 11:30 05-11-2006
    codewarlock1101



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mozers
    обязательно! вот только бы протрезветь.....
    Короче всех с праздником!!!!!!!!!!!!!!!!!!!!!!!!!! Новая версия доступна с "Бордо 89"... то есть........

    Всего записей: 92 | Зарегистр. 12-03-2005 | Отправлено: 21:55 05-11-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