сделать стартовой  |  добавить в избранное

   SciTE - редактор кода для программистов

Интерфейс командной строки для SciTE


Автор: Тугаринов Сергей / Дата: 18.07.2006 / Комментариев: 2
Категория: Полезные утилиты


Утилита представляет собой интерфейс командной строки позволяющий выполнять различные команды, такие как: "Выполнить SciTE команду", "Открыть файл" и т.д.
За основу взят исходный код со следующей страницы.
Так как я не смог распаковать готовый дистрибутив взятый с сайта, пришлось собирать его самому из исходников. Но толи сорцы кривые, толи мои руки, вообщем в процессе сборки была переписана треть кода, изменена 1 команда, исправлены 2 ошибки и все сообщения переведены на русский язык.
Вообщем принимайте :)

Утилита понимает следующие команды:

-h Вывести на экран эту справку.
-l line Перейти к строке под номером [line].
-f text Поиск текста [text] в файле.
-i text Вставить текст в файл.
-n Создать новое пустое окно.
-s Открыть новое окно с STDIN содержанием.
-c cmd Выполнить SciTE команду [cmd].
-o file Открыть файл [file].


Выглядит утилита в работе следующим образом:


Для работы необходимо:
  • поместить ее в любой каталог вашего диска;
  • прописать переменную windows path к каталогу SciTE, так как утилита по умолчанию вызывает scite.exe;
  • наслаждаться его работой

Собрано с помощью C++Builder 5.5.
Скачать дистрибутив (включает в себя исходные коды) ~ 44 Kb.

Добавлено mozers™:
Поскольку я когда то обошел заслуженным вниманием данную тулзу, позволю себе добавить несколько строк:

Во- первых совет Сергея "прописать переменную windows path к каталогу SciTE" необходимо выполнить только в одном случае - если утилу вы собираетесь запускать при "потушенном" SciTE. Тогда, перед тем как выполнить заданную команду, утила сможет найти файл scite.exe и запустить его.

Если же вы собираетесь запускать ее из меню Tools редактора, то задание пути к редактору не является обязательным, поскольку прога ищет не не файл scite.exe, а окно программы и посылает команды прямо в него.

Кстати, занимается поиском окна она совершенно напрасно (при поиске возможны ошибки, если запущены несколько экземпляров SciTE), поскольку при вызове из SciTE можно передать утиле необходимый "$(WindowID)".
Только, увы, в этой утиле не предусмотрено чтение этого параметра :(

Команды, понимаемые утилой - полная туфта, за исключением одной -c cmd.
С помощю только одной этой команды можно управлять SciTE как угодно, поскольку в качестве параметра для нее может выступать любая команда поддерживаемая SciTE Director Interface - мощным средством взаимодействия SciTE с любой внешней прогой.
Все допустимые команды приведены в файле SciTEDirector.html, имеющегося в любом дистрибутиве SciTE. Посмотрите на них и вы увидите что они позволяют очень и очень многое.
В этот перечень входят не только команды меню (которые только и может выполнять мой SciTE Helper). Возможно задание команды с параметрами, возможно чтение любых параметров SciTE!

Стоп. Я увлекся :) Говоря о утилите, я приписал ей все возможности SciTE Director Interface, который она использует лишь наполовину и поэтому явно нуждается в доработке.

Что, на мой взгляд, надо изменить в коде:

1. Убрать из кода дурацкую строчку SetForegroundWindow(w); которая переключает SciTE на последний открытый буфер при выполнении любой команды (дико раздражает).

2. Научить утилу читать $(WindowID) из коммандной строки и не искать его самостоятельно, если прочесть удалось.

3. Научить утилу читать данные, отдаваемые ей SciTE (например, по команде askproperty:)

4. Можно научить утилу читать команды (их же может быть и много) не только с ком.строки, а и из файла

5. Можно грохнуть все остальные команды, кроме за ненужностью ;)

Пока все :)
Если кто то из вас, дорогие мои, сможет исправить код, или написать свою утилиту использующую SciTE Director Interface, то я смогу создавать красивые и элегантные HTA формы, без проблем считывающие данные из SciTE и возвращающие их после обработки назад в редактор.
О более мощном средстве автоматизации нельзя и мечтать!

Ну и небольшой пример в заключении:
test.cmd:Код:

scitecmd.exe -c extender:"dostring val='My Test!' dofile('test.lua')"


test.lua:Код LUA:
print('val = '...val)

Источник / Версия для печати / Прочитано: 14943 раз(а)

Комментариев: 2 (rss)

1. ilyaor / 28.02.2006 - 06:18
немного внимания http://www.frykholm.se/files/scitecmd.gz - не архив, а исполняемый файл.
итак переименуем scitecmd.gz в scitecmd.exe и получаем бинарник от автора. теперь можно использовать два разных варианта - кому что понравится
Цитата
2. Тугаринов Сергей / 28.02.2006 - 07:26
ilyaor,
scitecmd.gz - не архив, а исполняемый файл.

Мдя... сильно я лоханулся :)
Цитата


Добавить комментарий:
Имя:
E-mail:
        BBCodes




Интересные статьи / Тематические материалы © 2004 - 2017 - Хранение данных