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

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

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

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

   

Widok



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

A free source code editor for Win32 and X
Русскоязычный форум поддержки
Внимание! Это - продолжение темы, начатой [здесь]

  • Один из самых настраиваемых текстовых редакторов из ныне существующих. Настраивается практически все.
  • Индивидуальная подсветка для разных языков програмирования, фолдинг для классов, функций и структур, авто-дополнение, и т.д. и т.п. ...
     
  • Официальный сайт: Scintilla and Scite
  • Официальный форум: Scite-interest -- Discussion of the SciTE editor
  • Русская документация по SciTE (Ждем ваших замечаний и дополнений...)
  • Проект SciTE-Ru (полезные файлы, предложения, SVN, ....)
  • SciTE - Википедия (корректируйте, дополняйте!)
  • Русский сайт 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 - 2.22
     
    Последняя версия редактора из проекта SciTE-Ru - 2.22 .87 [Сборка 01.11.2010]
    (Oписание: сборки, ядра)        [Важно! О "вирусах" в сборке SciTE-Ru!]
     
    Русскоязычный онлайновый чат, посвященный SciTE: online@conference.scite-ru.org
    Дружественная тема: Доработка исходного кода и компилирование сборки Ru-Board Edition
    Нерешенные задачи и вопросы ( Для умных и талантливых форумчан )

  • Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 14:48 09-10-2007 | Исправлено: mozers, 19:36 01-11-2010
    VoidVolker

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

    Цитата:
    calltip.nncrontab.parameters.start=: (

    Двоеточие является частью многих слов, а вот по пробелу... Хмм... пока оставлю, посмотрю не будет ли надоедать. Непонятно наличие открывающей скобки - все параметры передаются через стек, т.е. они перед словом идут А вообще, в скобках обычно комментарии. Так что имеет смысл оставить только один пробел как в forth.properties так и в nncrontab.properties.
    Как назначить хоткей на копирование пути и/или имени файла?
     
    Добавлено:
    mozers

    Цитата:
    А если написать так:  
    Цитата:FILL (D, A, len)\n Заполнить область памяти с начальным адресом A и длиной len ячеек значением D.  
    То будет еще аккуратнее. И при  
    Цитата:calltip.nncrontab.parameters.separators=,  
    при вводе параметров D, A, len подсветка в подсказке будет смещатся, подсказывая какой из 3х параметров ты вводишь.

    А вот и неправильно! В скобках указан т.н. "стековый комментарий" - слева от двух черточек указывается состояние стека до начала работы слова, а справа - состояние стека после, и соответственно скайте не может знать какие параметры возможно сейчас на стеке, и какие во врем выполнения программы. Т.е. в даннном случае код может выглядеть так:

    Код:
    32 Массив 345 FILL

    или так:

    Код:
    ляля тополя FILL

    т.е. фантазия ничем неограничена
     
    Добавлено:
    P.S. Разделителем слов в форте является пробел(или любой другой символ с кодом меньше 32-х). А вот запятая в слове является признаком того, что это слово что-то компилирует в словарь.

    Всего записей: 186 | Зарегистр. 10-11-2008 | Отправлено: 21:41 22-11-2008
    mozers



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VoidVolker
    Я запятую только для наглядности привел (т.к. пробел цветом не выделишь
    Поэтому разделители используй какие надо (пробел - значит его).
    А вот то, что параметры пишутся впереди оператора
    Цитата:
    32 Массив 345 FILL
    - это фигово Придется подсказку по Ctrl+Shift+Space глядеть.
    Странный какой то язык... В HELP nnCron все намного проще:
    Код:
    FILE-APPEND: "filename" "text"  
    FILE-COPY: "from_filename" "to_filename"  
    FILE-CREATE: "filename"  
    FILE-CROP: "filename" <max_size_in_kb> <size_after_crop>  
    FILE-ACCESS-DATE: "path"  
    FILE-CREATION-DATE: "path" (FILE-DATE: "path")  
    FILE-WRITE-DATE: "path"  
    FILE-DELETE: "filename"
    Т.е. поставил : - возникла подсказка.

    Цитата:
    Как назначить хоткей на копирование пути и/или имени файла?
    Так же как на любую другую команду меню (это команды 60-63).

    Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 23:55 22-11-2008
    VoidVolker

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

    Цитата:
    А вот то, что параметры пишутся впереди оператора
    Цитата:32 Массив 345 FILL
    - это фигово  Придется подсказку по Ctrl+Shift+Space глядеть.
    Странный какой то язык..

    Называется "обратная польская запись" или постфиксная запись. Да, по-началу это кажется странным, а потом со временем понимаешь, что на самом деле это очень просто и удобно.

    Цитата:
    Придется подсказку по Ctrl+Shift+Space глядеть.
    Странный какой то язык... В HELP nnCron все намного проще:

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

    Код:
    FAPPEND
    FCOPY
    FDELETE

    И поэтому думаю более корректно использовать пробел для вывода подсказок, т.к. именно он является признаком конца слова. А еще есть слова типа :NONAME - тут двоеточие в начале.

    Всего записей: 186 | Зарегистр. 10-11-2008 | Отправлено: 12:34 23-11-2008
    VoidVolker

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А вот как из SciTE Helper можно добавить всплывающие подсказки по словам? По сути добавить в скайте подсказку как если бы она была из апи-файла, при этом не трогая сам апи файл.

    Всего записей: 186 | Зарегистр. 10-11-2008 | Отправлено: 12:33 24-11-2008
    mozers



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VoidVolker
    Если в Lua, то - так test.lua :
    Код:
    editor:CallTipShow(editor.CurrentPos, 'Моя подсказка')

    Если действительно необходимо управлять SciTE извне, то аналогично test.vbs :
    Код:
    Set SciTE = CreateObject("SciTE.Helper")
    SciTE.LUA("editor:CallTipShow(editor.CurrentPos, 'Моя подсказка')")

    Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 17:48 24-11-2008
    TymurGubayev

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Такая фигня:
    1. В SciTEDoc_rus.html#creatapi написано: "*.api-файл представляет собой
    текстовый документ, формат которого изложен в описании параметров
    api.filepattern и autocomplete.lexer."
    В SciTEDoc_rus.html#api стоит: "Чтобы узнать, как создавать API-файлы, см.
    раздел "Создание API-файлов"."
    В SciTEDoc_rus.html#autocomplete.start.characters (ссылка от
    autocomplete.lexer) вообще ничего.
     
    А не работает следующее:
    в lua.api строчки:
    aa
    aa.bb
    aa.bb.cc
     
    Автодополнение работает так:
     aa[Ctrl+Space]    - выводит все варианты
     aa.               - всплывает bb
     aa.bb[Ctrl+Space] - не всплывает ничего
     aa.bb.            - аналогично (а хотелось бы cc)
     
    Я не знаю наверняка, баг это программы или отсутствие документации. Если второе, хорошо бы,  если бы знающие люди документацию доделали, а заодно объяснили бы мне, что я делаю не так.
     
    2. Если установлена подсветка properties, автодополнение ведёт себя почти идеально: в списке автоматически выбирается подходящий вариант по мере набора:
      f[Ctrl+Space]    - список автодополнения есть, выбрана строчка с "false"
      f[Ctrl+Space]i   - список автодополнения есть, выбрана строчка с "file"
    Если установлена другая подсветка (напр, lua), список автодополнения пропадает
    после ввода следующего символа.
    Например, для Lua:
      f[Ctrl+Space]    - список автодополнения есть, выбрано "file:close"
      f[Ctrl+Space]i   -  вместо того, чтобы остаться на "file:close", список автодополнения просто исчезает.
     
     Параметра, отвечающего за такое поведение автодополнения, я так и не нашёл. Подскажите плз!

    Всего записей: 35 | Зарегистр. 24-11-2008 | Отправлено: 18:49 24-11-2008
    VoidVolker

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mozers
    Нее, не так. Я просто хочу передать скайте имя нового слова и подсказку по нему так, чтобы он потом сам выводил подсказку по слову, как если бы она была в апи-файле.

    Всего записей: 186 | Зарегистр. 10-11-2008 | Отправлено: 20:27 24-11-2008
    TymurGubayev

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Частично разобрался с фигнёй номер 1 (см. пост чуть выше):
     надо было всего-то слегка переписать AutocompleteObject.lua, заодно я его чуть обновил.
    Теперь скрипт пытается искать начало имени объекта влево от введённого разделителя до упора:
     Было:   aa.bb. ---> показывает методы для "bb"
     Стало:  aa.bb. ---> показывает методы для "aa.bb"
     
    Если кому надо, скажите куда положить.
    Поведение [ctrl+space] переписать средствами Луа уже не так просто, так что "aa.bb[Ctrl+Space] - не всплывает ничего" так и осталось.
     
    А на самом деле это легка решается правкой editor:WordStartPosition() (например, вторым параметром паттерн символа из того, что считаем словом, по умолчанию [%a%d_] или что-то в этом духе, но при нужде -- как в данном случае -- можно изменить например на [%a%d_%.%:].

    Всего записей: 35 | Зарегистр. 24-11-2008 | Отправлено: 08:07 25-11-2008
    mozers



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    TymurGubayev
    Давайте всетаки отделим мухи от котлет:
    По [Ctrl+Space] и [Ctrl+I] срабатывает механизм автодополнения заложенный в коде SciTE.
    Параметры его работы определяют куча параметров autocomplete.* , autocompleteword.automatic, word.characters.filepattern и содержимое соответствующего api-файла.
    Если нам кажется что это автодополнение работает неверно то перед началом тестирования необходимо отключить все скрипты, чтобы их действие не было приписано редактору.
     
    У AutocompleteObject.lua - совсем другие задачи! (Страницу назад объяснял - повторять не буду). Для его корретной работы и api-файл необходимо дополнять и параметры автодополнения выставлять из несколько других соображений. Смотрите начало скрипта - там подробно описан алгоритм его работы.
     
    VoidVolker
    Не думаю что это вообще возможно. В SciTE нет параметра в котором бы хранилось соотвествие слово->подсказка. Так что только если динамически дописывать-перечитывать текущий api-файл.

    Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 09:18 25-11-2008
    DJ makrus

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VoidVolker
    Цитата:
    Для кронтабов функция autocomplete.nncrontab неприменима, т.к. в ннкроне объектов и их свойств нету...
    Я постом выше уже писАл что скрипту должно быть все равно - пишу я программу на объктно-ориентированном языке или письмо на деревню бабушке! Если я в письме использую синтаксис поддерживаемого AutocompleteObject формата и подключен соотвествующий *.api, то скрипт должен работать!
    Цитата:
    Что-то странное со всплывающими подсказками из *.api - подсказки всплывают только, если после слова в апи-файле есть открывающая скобка. Это настраиваемая фишка или глюк?
    Это фишка, так мне в свое время было объяснено mozers'ом, но к сожалению не отключаемая    
     
    mozers
    Цитата:
    api.nncrontab используется только скриптом.
    Да    с отключенным скриптом нет всплывающих подсказок, а я на них очень большие надежды возлагаю   с включенным - есть подсказки (если они начинаются со скобки) и удвоение последнего введенного символа при выборе из списка автодополнения   IMHO, этот гордиев узил можно разрубить сделав аналог скрипта AutocompleteObject учитывающий особенности его работы в nnCron'е/Форте.
    Но может можно как-то настроить cуществующий скрипт?  
    Цитата:
    Чтобы в боковой панели список видеть? - в SideBar.lua.
    ага, спасибо будем пробывать дорабатывать  
    Цитата:
    Чесноговоря даже мысли щас нет как это дело можно красиво реализовать  Самое главное я не уверен что это кому то кроме тебя может понадобится...
    Ну это не критично, но если вдруг еще кто-то об этом попросит, вспомните, пожалуйста, что он не первый кто просит об этом  
    Цитата:
    "FileMan: Change Dir" ?
    да, так даже лучше!
    Цитата:
    Или пункт "Open File" в меню жирным? Что мы мечтаем? - ни то ни другое на сегодня - невозможно
    Если бы я располагал хотя бы 10-ой частью ваших знаний в данной области, то возможно я предложил бы более реальный вариант, а так я предлагаю идею (возможно не новую для вас) а уж возможно ли это - вам лучше знать, и делать так или нет - решать тоже вам  
    Цитата:
    Ну а кто впихнул в nncrontab.properties эту чушь?
    Скорее всего - я   , в те времена когда пытался разобраться с этой настройкой самостоятельно по аналогии с другими файлами настроек, а потом, по другим вопросам, высылал вам и vladvro свои файлы не чистя их от результатов своих эксперементов и вот это оказалось в сборке. Но даже если в подключенном файле nncrontab.properties нет этой чуши, все равно
    Цитата:
    подсказки всплывают только, если после слова в апи-файле есть открывающая скобка.
    т.к. этот параметр и не должен проверять что в api-файле, он же нужен что бы указать символ(ы) при наборе которого в редактируемом файле (а не api-файле) должна появиться подсказка, или я опять ошибаюсь  
    Цитата:
    Зачем? Чтобы после возникновения подсказки стирать его???
    Да, к сожалению, я не придумал другой альтернативы   , забегаю вперед - идея хоткея "Ctrl+Shift+Space" - класс, я почему-то совсем забыл про хоткеи (инерция мышления   ), но щас попробовал: по хоткею не появляется, ввожу вопрос - вижу подсказку    
    Пробовал пробел, но долго не протянул (и это с моими не до конца заполненными api-файлами   ) - отвлекает постоянно появляющаяся и, далеко не всегда нужная, подсказка. Подсказка    должна быть по требованию, а не автоматическая!
    Цитата:
    Странный какой то язык... В HELP nnCron все намного проще...
    язык и nnCron - это одно и то же! см. параллельный топик  

    ----------
    все познается в сравнении

    Всего записей: 529 | Зарегистр. 25-03-2004 | Отправлено: 11:23 25-11-2008
    mozers



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    DJ makrus
    Цитата:
    Если я в письме использую синтаксис поддерживаемого AutocompleteObject формата и подключен соотвествующий *.api, то скрипт должен работать!
    Да. Только смысла от такого скрипта - никакого.

    Цитата:

    Цитата:
    подсказки всплывают только, если после слова в апи-файле есть открывающая скобка. Это настраиваемая фишка или глюк?
    Это фишка, так мне в свое время было объяснено mozers'ом, но к сожалению не отключаемая  
    Вот ляпнешь порой сдуру какую нить чушь, а люди тебя - цитируют... Неправда это - все настраивается.

    Цитата:
    Да    с отключенным скриптом нет всплывающих подсказок, а я на них очень большие надежды возлагаю   с включенным - есть подсказки (если они начинаются со скобки) и удвоение последнего введенного символа при выборе из списка автодополнения   IMHO, этот гордиев узил можно разрубить сделав аналог скрипта AutocompleteObject учитывающий особенности его работы в nnCron'е/Форте.
    Можно сделать скрипт, который будет заниматься автодополнением.
    Можно сделать скрипт, который будет заниматься выводом подсказок.
    Можно... Но зачем??? Если эти функции уже зашиты в ядре и могут работать как надо - надо только разобраться и настроить их как положено.

    Цитата:
    Чтобы в боковой панели список видеть? - в SideBar.lua. ага, спасибо будем пробывать дорабатывать  
    В новом варианте SideBar.lua nnCron уже есть.
    Цитата:
    Но даже если в подключенном файле nncrontab.properties нет этой чуши, все равно
    Цитата:подсказки всплывают только, если после слова в апи-файле есть открывающая скобка.  
    т.к. этот параметр и не должен проверять что в api-файле, он же нужен что бы указать символ(ы) при наборе которого в редактируемом файле (а не api-файле) должна появиться подсказка, или я опять ошибаюсь  
    Ошибаешся...

    Цитата:
    почему-то совсем забыл про хоткеи (инерция мышления   ), но щас попробовал: по хоткею не появляется
    Присылай мне твои api и какую подсказку в каком месте ты хочешь видеть... Настроим - ВСЕ будет работать.
    mozers(собака)mail.ru если забыл

    Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 15:12 25-11-2008
    VoidVolker

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

    Цитата:
    В новом варианте SideBar.lua nnCron уже есть.

    А можно по-подробнее? Что именно там есть? А то у меня тут появилась идея как ее приспособить для кронтабов
     
    Добавлено:
    К слову о всплывающих подсказках - может быть удобнее будет сделать чтобы они вылазили не в позиции курсора, а "парковались" либо в самом низу экрана либо в нижней части окна скайте? Или может быть в консоли(просто идея)?
     
    Добавлено:
    О! Придумал-таки применение автодополнению: в задаче в спецификации события WatchHotKey: и в строке для слова SEND-KEYS -  часто бывает нужно указать код клавиши или ее имя:

    Код:
    WatchHotKey: "{0x74}"    \ 'F5'
    WatchHotKey: "{SCROLLLOCK}"
    SEND-KEYS: "1{+}2{ENTER}{DELAY 2000}*3{ENTER}"

    И вот тут как раз список кнопок был бы очень кстати - сначала все именованные в кроне клавиши, а затем список оставшихся, только вместо имени, вставлялся бы их код в шестнадцатиричном виде. Причем в SEND-KEYS указать код нельзя.

    Всего записей: 186 | Зарегистр. 10-11-2008 | Отправлено: 16:18 25-11-2008
    TymurGubayev

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

    Цитата:
    AutocompleteObject.lua
    mozers™
    version 2.03
    ------------------------------------------------------
    Ввод разделителя, заданного в autocomplete.[lexer].start.characters
    вызывает список свойств и медодов объекта из соответствующего api файла
    Ввод пробела или разделителя изменяют регистр символов в имени объекта в соответствии с записью в api файле
    (например "ucase" при вводе автоматически заменяется на "UCase")

    Второй пункт у меня не работает.
     
    Чтобы первый пункт работал корректно (а именно воспринимал "aa.bb" как имя объекта), необходимо в lua.properties исправить word.characters.$(file.patterns.lua)=$(word.chars.lua).:
    Тогда и [Ctrl+Space] начинает работать правильно, потому что от этого параметра зависит поведение editor:WordStartPosition. (это были котлеты. Которые оказались неотделимы от мух).
    В связи с чем пара предложений:
    1. Исправить файл lua.properties
    2. В справке к autocomplete добавить ссылку на word.characters
    3. В справке написать наконец формат .api - файлов. (Сейчас это выглядит так:
     SciTEDoc_rus.html#creatapi: "*.api-файл представляет собой текстовый документ, формат которого изложен в описании параметров api.filepattern и autocomplete.lexer."
    api.filepattern: "Чтобы узнать, как создавать API-файлы, см. раздел "Создание API-файлов". " (т.е. опять SciTEDoc_rus.html#creatapi)
     
    Проблема номер 2 из моего поста выше остаётся открытой.
     
    [upd]
    Картинка номер 3 вот отсюда: http://mozers.net.ru/temp/scite-demo.htm у меня тоже не выходит.

    Всего записей: 35 | Зарегистр. 24-11-2008 | Отправлено: 20:17 25-11-2008 | Исправлено: TymurGubayev, 20:34 25-11-2008
    mozers



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

    Цитата:
    А можно по-подробнее? Что именно там есть?
    Выводятся функции nnCron (в соответсвии с алгоритмом DJ makrus).
    Быстрее качнуть 25кБ и поглядеть самому...

    Цитата:
    К слову о всплывающих подсказках - может быть удобнее будет сделать чтобы они вылазили не в позиции курсора, а "парковались" либо в самом низу экрана либо в нижней части окна скайте? Или может быть в консоли(просто идея)?  
    Увы - невозможно. В верхнем левом углу еще как то получается - больше никак

    Цитата:
    О! Придумал-таки применение автодополнению:
    Да тут и AutocompleteObject можно приспособить. Составляйте api-файл.
     
    TymurGubayev
    Цитата:
    Ввод пробела или разделителя изменяют регистр символов в имени объекта в соответствии с записью в api файле  
    (например "ucase" при вводе автоматически заменяется на "UCase")
    Виноват. Это в старой версии работало. Сейчас я эту функцию убрал. А текст убрать забыл.  

    Цитата:
    Чтобы первый пункт работал корректно (а именно воспринимал "aa.bb" как имя объекта),  
    Если "aa.bb" считать именем объекта, то это будет нарушением логики скрипта. аа - объект bb - его метод. Если надо выводить свойства метода bb то в api надо задавать не свойства объекта aa.bb, а свойства bb. То что bb является методом объекта aa тоже надо задавать отдельной строкой. Вообще все это написано в том же скрипте только чуть ниже. См.
    Цитата:
    Для понимания алгоритма работы скрипта,...
     

    Цитата:
    необходимо в lua.properties исправить word.characters.$(file.patterns.lua)=$(word.chars.lua).:
    Если вы осознаете последствия - исправляйте. Я этого никогда делать не буду.
    Цитата:
    Тогда и [Ctrl+Space] начинает работать правильно
    Я такое поведение правильным не считаю.
    По предложениям:
    1. Уже ответил.
    2. Добавим (только бы не забыть).
    3. Официально этот формат нигде не документирован. Правила его составления вычислялись методом проб и ошибок и анализа исходников. Я уже выкладывал на форуме вариант описания - предлагал обсудить, поспорить - ничего не услышал в ответ.
    Если есть такая необходимость можно повторить, но пока под текстом этой инструкции не подпишутся спецы уровня VladVRO она в документацию не войдет.

    Цитата:
    Проблема номер 2 из моего поста выше остаётся открытой.
    То что порой список автодополнения внезапно исчезает я полагаю виновата доработка AutoComplete. Предположение основано на том, что такое наблюдается только на файлах с текстом. В пустых файлах автодополнение работает стабильно. Но это - предположение. Его надо проверять.

    Цитата:
    Картинка номер 3 вот отсюда: http://mozers.net.ru/temp/scite-demo.htm у меня тоже не выходит.
    Верни взад все оригинальные настройки сборки - заработает 100%.

    Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 00:25 26-11-2008
    TymurGubayev

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mozers
     У меня в .api есть строчка "socket.dns.gethostname() = string\nReturns the standard host name for the machine as a string.". Т.е. у объекта socket есть поле -- объект dns, у которого уже метод... При этом меня устраивает, что автодополнение появляется для socket.dns, и не появляется для dns.
     Короче, эту функциональность я сделал сам, если кому будет интересно - выложу.
     
    Кроме того, в тексте скрипта после

    Цитата:
    Для понимания алгоритма работы скрипта, условимся, что в записи
    azimuth:left;list-style-|type:upper-roman
    где курсор стоит в позиции, отмеченной знаком "|", часть
    list-style  - будет называться "объект"
    type        - будет называться "метод"

    так и просится "а знак '-' -- один из разделителей". (Если я правильно понял, ибо описания работы там нет. Да и не надо особо.).
     
    Кстати,

    Цитата:
    На что не хватило терпения:
    1. Объединить функции CreateObjectsTable и CreateAliasTable в одну (чтобы обрабатывать api файлы за один проход)
    2. Сделать вызов функций постоения таблиц более редким (сейчас они строются постоянно после ввода символа-разделителя)

    я сделал.
    Кроме того добавил фичу для lua: если лексер "lua", скрипт при построении списка синонимов из файла (функция FindDeclaration) распознаёт str = "" как объект-строку. Соответственно, если добавить пару синонимов в lua.api, то по "str:" всплывает список из стандартных строковых методов. (Аналогичную функциональность просто имплементировать для любого языка)
    Ну и ещё по мелочи.
     
    Да, с пунктом 1 я погорячился Так что нормально атводополнение по [Ctrl+Space] так и не работает. И это то ли баг, то ли feature request.
    3. Ну, раз тут такие сложности... А жаль.
     
    (А картинка получилась после тупого добавления в .api строчки #file=io.open )
     
    Проблема номер 2:
     к сожалению, список (причём любой) исчезает не внезапно, а именно при вводе очередного символа либо при перемещении курсора (удалять символы Backspace-ом, если список появился по [Ctrl+Space] можно. Список из AutocompleteObject.lua пропадает, если стереть разделитель - что логично). Вряд ли это из-за AutoComplete.
    Я так понимаю, проблема в editor:UserListShow, либо где-то запрятано хитрое событие на нажатие клавиши, которое убивает список.
     На актуальной чистой сборке тоже не работает. А вот в старой сборке "Версия 1.76 .57Ru" всё отлично.
     
    PS Я чуток исправил LineComment() из xComment.lua: оно теперь выполняет editor:VCHome() только если курсор не стоит после кучи пробелов/табов.
    Т.е. для Луа строка "\t|code" (| - положение курсора) преобразуется в "\t-- code", вместо "-- \tcode". Имхо нужный патч
     
    upd
    словил какой-то страннейший баг. Во-первых, перестало работать временное расширение "word.characters.$(file.patterns.lua)" на пару символов (".:"). Причём "ничего не трогал, ничего не менял!!!"(с).
    Пытаясь разобраться обнаружил следующую фичу:
    оказывается, props['CurrentSelection'] ~= editor:GetSelText() -- точнее, не всегда равно.
    Например, если выделить в файле .properties текст "$(chars.numeric)" и нажать [Alt+V], то в консоль пойдёт "0123456789 = ", вместо "$(chars.numeric) = 0123456789". (Перед знаком '=' находится как раз props['CurrentSelection'])
    Вопрос: это баг или фича?????
    upd2
     Так и не разобрался, переставил SciTE -- всё равно не пашет. Такое впечатление, что props["some_property"] = "some_new_value" стало работать с запозданием -- если в скрипте убрать откат на старое значение, то на следующий заход editor:WordStartPosition воспринимает уже новое значение.

    Всего записей: 35 | Зарегистр. 24-11-2008 | Отправлено: 05:41 26-11-2008 | Исправлено: TymurGubayev, 08:36 26-11-2008
    DJ makrus

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mozers
    Цитата:
    Да. Только смысла от такого скрипта - никакого.
    Как это? Скрипт-то тот же!   Он же помогает при наборе кода, вот должен помогать и при написании письма "на деревню бабушке"!
    Цитата:
    Неправда это - все настраивается.
    Ох, скорей бы уже убедиться как это замечательно может работать  
    Цитата:
    Но зачем??? Если эти функции уже зашиты в ядре и могут работать как надо - надо только разобраться и настроить их как положено.
    Если не будет еще одного дублирующего скрипта - так это только +
    Цитата:
    В новом варианте SideBar.lua nnCron уже есть.
    Ага, спасибо что сами это сделали, только вот в кронтабах обязательно использовать вариант "-- для nnCron'а ", т.к. там важны в первую очередь именно задачи (ни один кронтаб фактически не бывает без задач, хотя может быть), а вот кронтаб без определений через ":" и ";" (вариант "-- для nnCron'а и Forth'а", вы же его использовали?) - очень частое явление.
    Цитата:
    Ошибаешся...
    Присылай мне твои api и какую подсказку в каком месте ты хочешь видеть... Настроим - ВСЕ будет работать.
    Утром отправил api-файлы, вы не поверите, но жду не дождусь когда убедюсь, что ошибся!  
     
    VoidVolker
    Цитата:
    А можно по-подробнее?
    названия файлов - ссылки, скачай, там вообще-то много чего изменилось, ну по крайней мере во многим местах  

    ----------
    все познается в сравнении

    Всего записей: 529 | Зарегистр. 25-03-2004 | Отправлено: 11:19 26-11-2008
    VoidVolker

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

    Цитата:
    Выводятся функции nnCron (в соответсвии с алгоритмом DJ makrus).  
    Быстрее качнуть 25кБ и поглядеть самому...

    DJ makrus

    Цитата:
    названия файлов - ссылки, скачай, там вообще-то много чего изменилось,

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

    Всего записей: 186 | Зарегистр. 10-11-2008 | Отправлено: 11:59 26-11-2008
    mozers



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    TymurGubayev
    Цитата:
    При этом меня устраивает, что автодополнение появляется для socket.dns, и не появляется для dns.  
     Короче, эту функциональность я сделал сам, если кому будет интересно - выложу.
    AutocompleteObject может работать так же. Только в word.characters точку придется добавить. Для css именно так и сделано (добавлен -), а вот делать так для Lua мне очень не нравится.

    Цитата:
    так и просится "а знак '-' -- один из разделителей".  
    Спасибо за замечание - добавил.

    Цитата:
    я сделал. Кроме того добавил фичу  
    Ну так не стесняйся - выкладывай прямо тут - бум поглядеть
    Только в теги [ more ] [ /more ] код заключи обязательно!

    Цитата:
    Так что нормально атводополнение по [Ctrl+Space] так и не работает
    Не пойму чего тебе надо? Имхо - нормально работает - точнее, в меру своего функционала.

    Цитата:
    3. Ну, раз тут такие сложности
    Просто в документации не место домыслам и предположениям. Кстати, и формат api-файла и принцип его работы описан в api.filepattern. Расширенный формат (для AutocompleteObject.lua) описан в файле ActiveX.api.

    Цитата:
    Я чуток исправил LineComment() из xComment.lua: оно теперь выполняет editor:VCHome() только если курсор не стоит после кучи пробелов/табов.  
    Т.е. для Луа строка "\t|code" (| - положение курсора) преобразуется в "\t-- code", вместо "-- \tcode". Имхо нужный патч  
    Выкладывай!
    Насколько я помню этот скрипт комментарий устанавливает с учетом параметра comment.block.at.line.start.lexer.

    Цитата:
    если выделить в файле .properties текст "$(chars.numeric)" и нажать [Alt+V],  
    Надо выделять текст, что я выделил цветом.
    p.s. глянь в свой личный ящик

    Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 12:01 26-11-2008
    VoidVolker

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

    Цитата:
    Увы - невозможно. В верхнем левом углу еще как то получается - больше никак

    Чего здесь невозможного? Создать при запуске окошко, по срабатыванию подсказки установить ему текст с форматированием, припарковать и показать?

    Всего записей: 186 | Зарегистр. 10-11-2008 | Отправлено: 14:02 26-11-2008
    TymurGubayev

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

    Цитата:
    Надо выделять текст, что я выделил цветом.  

    я знаю, меня удивило, что props['CurrentSelection'] может вернуть выделенный текст, а может и какую-нибудь фигню, если текст с настройкой совпадёт. Имхо это баг.
    И мне больше нравится выделять целиком, так что я слегка подправил value.lua
     
    В xComment.lua я практически ничего не трогал, if comment_block_at_line_start == 1 как было, так и осталось.
    А исправление следующее:

    Код:
    local function LineComment()
    -- Комментирование одной невыделенной строки
    -- ... пропущен код
           
    if comment_block_at_line_start == 1 then
               
    editor:GotoPos(editor:PositionFromLine(line_sel_start))
           
    else
                local
    line, car = editor:GetCurLine()
               
    local _, e = line:find("%s*")
               
    -- если позиция каретки НЕ совпадает с первым НЕ пробелом, то жмём на Home.
               
    if car ~= e then
                   
    editor:VCHome()
               
    end
            end
    -- ... пропущен код.
    end

    т.е. достаточно отредактировать один блок else ... end
     
    А AutocompleteObject.lua я сейчас ещё добью чуток, и выложу.

    Всего записей: 35 | Зарегистр. 24-11-2008 | Отправлено: 18:27 26-11-2008 | Исправлено: TymurGubayev, 18:32 26-11-2008
       

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

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


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

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.Board
    © Ru.Board 2000-2020

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru