Новостиrss
ТелеграмФорум
ТелеграмТелеграм
ВКонтактеВКонтакте
Поддержка
Подписаться »»
Aml Pages
Скачать
Новичкам…
Что нового
КУПИТЬ
 продлить Скриншоты
Видео
Плагины
ЧаВо
Статьи
Планы
Разработчику
Aml Maple
Скачать
КУПИТЬ
 продлить
Быстрый старт
ЧаВо
Видео
Отзывы
Статьи
TwinkiePaste
Скачать
КУПИТЬ
 продлить
Быстрый старт
Скриншоты
Функции
ЧаВо
Сумма прописью
Отзывы
Статьи
Pwd Cracker
    Password Cracker
ЧаВо
Реклама в PC
Перевести
WriteYours
Mouse Hunter
RSSme
поддержка
Cвязаться
Форум
Голосования
Контакты
Разное
Информеры
Награды
Модули++
Каталог
Спасибо!
Разработчикам
Возможности
Plugin API

PAD файлы
Ссылки
Sitemap

Статистика
Яндекс.Метрика
  © 2004 X-ViK Design
*

Маленькие хитрости. Синтаксическая подсветка

ВКонтакте
Телеграм
Обсуждение
RSS-лента

Статья рассказывает как использовать синтаскическую подсветку в самых повседневных задачах самым обычным пользователям (это не о подсветке языков программирования, хотя и это Aml Pages умеет).

См. также: Часть 1 | Часть 2 | Часть 3 | Часть 5 | Часть 6 | Часть 7 | Часть 8 | Видео о синтаксической подсветке
Синтаксическая подсветка для НЕпрограммистов

Добрый день, уважаемые подписчики. Сегодня в очередной части "маленьких хитростей" я попытаюсь рассказать о некоторых любопытных приемах работы в Aml Pages. Речь пойдет о синтаксической подсветке.

"Маленькие хитрости" это целая серия статей, рассказывающих о различных хитростях, фокусах, что называется "кульных рюшечек" при работе в Aml Pages. Статьи публиковались, и публикуются сейчас в рамках новостной рассылки, ну, а затем попадают в официальную справку к Aml Pages.

Прим. редактора


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

Немного истории

В начале марта этого года в Aml Pages была реализована полностью новая синтаксическая подсветка языков программирования.

Хех, "этого года"... Продвинутая синтаксическая подсветка
появилась еще в в конце 2004 - начале 2005-го года.

Прим. редактора


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

Вероятно, постоянные подписчики со стажем помнят упоминание о том, что гордое название синтаксической подсветки языков программирования, не только слишком длинное, но и чересчур частное, лишенное обобщенности. А именно, говорилось о том, что алгоритму подсветки абсолютно не важно, что подсвечивать, и это вовсе не обязательно должен быть язык программирования, или какая-либо другая формальная конструкция. Действительно, в программе присутствует код, только код, и ничего кроме кода. Правила же синтаксической подсветки, описывающие, что и как искать (слова, символы и т.д.), где и как подсвечивать (цвета) хранятся во внешних файлах, и могут описывать какие угодно конструкции. Т.е. говоря обычным языком, алгоритм может также непринужденно подсвечивать и текст "шла Маша по шоссе", лишь бы "Маша" со "Шлой" были описаны в файле подсветки.

Пример подсветки цитат в тексте писем электронной почты

Синтаксическая подсветка для непрограммистов

Итак, сегодня я хотел бы рассказать о синтаксической подсветке, но не в контексте языков программирования, а применительно к обычной работе с текстом. Рассказать о том, как синтаксическая подсветка может помогать (я бы даже сказал, решать за пользователя 2 трети проблем) в работе с самым обыкновенным НЕпрограммным текстом.

Полагаю, многим из Вас приходится группировать Ваши данные в Aml Pages не только в папки, страницы, листочки, но и внутри текста в некие абстрактные категории вроде "не забыть", "очень важно", "сверхсрочно" и т.п. Т.е. делить на некоторые классы согласно Вашей собственной схеме. Частенько пользователи это делают "глазами", но программа в таком разделении может более чем существенно помогать. Конечно, хотелось бы, чтобы текст разных категорий как-то выделялся. В принципе, Aml Pages поддерживает и форматирование цветов текста, и пользовательские стили форматирования. Но есть два "но", незначительных, зато докучающих:

  1. Текст с форматированием может сохраняться только в страницах форматированного текста. А такие страницы, хоть и хранят больше информации о форматировании, в общем случае могут значительно увеличивать размер документа. Что в целом хоть и не прекрасно, но терпимо.

  2. И что важнее, для отметки такого текста, приходится каждый раз "лазить" в команды форматирования. А это бывает затруднительно. Особенно если текст записывается на бегу. А даже если время на "украшательства" и находится, отвлекаться на форматирование, означает отвлекаться от самой задачи пользователя на способ ее решения. Такие отвлечения не способствуют ни комфорту работы, ни лучшему решению задачи. По моему мнению, задача пользователя важнее способа ее решения. Способы решения задачи должны быть проблемой программы.

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

Но сначала нужно описать правила подсветки, по которым нужно "раскрашивать" текст пользователя. На самом деле в данный момент такие подсветки текста уже есть в дистрибутиве Aml Pages, о чем будет написано ниже, и Вы можете начать пользоваться ими хоть сей момент. Но создать файл правил подсветки отнюдь не сложно. Тем более, что вероятно, у кого-то возникнет желание использовать свою собственную подсветку. Заметим, что правила синтаксической подсветки Aml Pages позволяют описывать конструкции вида:

[признак_начала_подсвечиваемого_текста] [любой_текст] [признак_конца_подсвечиваемого_текста]

Причем признаком конца подсвечиваемого текста может служить, к примеру, и перенос строки, а началом какое-либо специфическое редко используемое сочетание символов или слов, вроде "++" (два плюса) или "##".

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

Что дает такой подход к подсвечиванию текста?

  1. Вам вообще не требуется обращаться в командам форматирования!!! Вы как обычно вводите свой текст, разве что, поставив где-то в его начале что-то вроде "++" или "##".

  2. Вы не отвлекаетесь на оформление текста!!! Вы на самом деле полностью на 100% сосредотачиваетесь на своей собственной задаче - а именно на Вашем тексте. Не отвлекаясь на способ решения, Вы решаете саму задачу. Согласитесь, если в классификации присутствует 3-4 категории текста, то значительно быстрее сообразить "налево? направо? прыжок на месте?" и сразу отнести текст к какой-либо категории, а не задумываться о форматировании. В конце концов, Вы легко можете в последствии вернуться к этому тексту и изменить его категорию (просто изменив в тексте эти самые "++" или "##").

  3. Поменяв правила подсветки (цвета подсветки, к примеру), Вы сразу увидите текст подсвеченным в соответствии с новыми правилами. Вам не приходиться думать о том, что текст одной и той же категории ("Не забыть") в разных местах форматируется по разному. Весь текст с такими атрибутами подсветки во всех частях документа будет выглядеть абсолютно одинаково.

  4. Работать с подобным текстом в последствии значительно удобнее. В той или иной степени весь текст уже разбит на некоторые части, категории. "Структура" такого текста видна сразу же. К тому же, если часть текста не отнесена ни к одной из категорий, она не подсвечивается и такие "неопределенные" фрагменты легко находить.

  5. Ну и последнее в списке, но не по значению. Такой текст совершенно спокойно может храниться и в виде обычного текста (страниц простого текста, Plain Text), не съедая драгоценные байты Вашего документа. Хотя замечу, что форматированный текст подсвечивается совершенно с таким же успехом - т.е. все будет работать абсолютно точно так же и со страницами форматированного текста.

Где посмотреть?

В последних версиях Aml Pages по просьбам некоторых пользователей в дистрибутив программы включена такая подсветка. Это как раз и есть моя собственная подсветка текста, которая так и называется "Как у Carc`а" - это та самая подсветка, которая приведена как пример выше ("категории" текста).

Carc - автор не только самой Aml Pages, но и описываемой в этой статье идеи "раскраски" структуры текста "на лету".

Название подсветки "Как у Carc`а" сложилось исторически, в процессе продолжительного "стреляния" друг у друга файла правил этой подсветки посетителями форума проекта (до того, как подсветка была включена в официальный дистрибутив Aml Pages).

Прим. редактора


В файле-примере (sample.apd) в дистрибутиве Aml Pages есть пример этой синтаксической подсветки - с ним можно и "поиграться" и посмотреть, как это работает. Хотя отмечу, что плюсы синтаксической подсветки особенно заметны именно в интенсивной работе, когда "всё время некогда", и Вы обращаетесь к Aml Pages чтобы как можно быстрее, не теряя времени, записать что-то важное.

Пример подсветки структуры текста 'Как у Carc`а'

Надеюсь, мне удалось рассказать о действительно удобных сторонах работы с синтаксической подсветкой, причем о сторонах удобных и комфортных не только программистам, но и вполне традиционным пользователям. Если я Вас не убедил, попробуйте сами! Как показывает опыт, пользователи, которые часто записывают какую-то обрывочную, но, тем не менее, важную информацию, попробовав этот прием, уже не хотят без него обходиться.

Вопросы и ответы (FAQ, по материалам почты)

Приводит ли подсветка к изменению данных документа?
Нет. Документ хранит только данные о выбранной подсветке (одна подсветка на одну страницу документа). Подсветка текста производится "на лету" и не приводит к изменению документа.
Что произойдет, если Aml Pages не обнаружит конкретный файл подсветки?
Программа сообщит, что файл подсветки не найден, и просто не будет подсвечивать текст страницы. Как только Aml Pages "получит" файл подсветки, подсветка снова будет применяться (если подсветку не отключили, впрочем включить подсветку обратно можно двумя щелчками мыши).
Как переносить файлы подсветок?
Для установки файла подсветки достаточно просто расположить его в папке Aml Pages. И ничего более. Никаких дополнительных "регистраций" файла подсветки не требуется. Программа обнаруживает все файлы подсветок в процессе работы. Если Вы часто работаете с Aml Pages в разных местах или не уверены, что на "соседнем" компьютере будет присутствовать файл Вашей подсветки, то Вы можете просто носить все файлы подсветок с собой - их суммарный обьем не превышает и 20 килобайт (сравните эту цифру с документом содержащим множество форматированного текста).
Как Aml Pages сохраняет данные о выбранной подсветке?
При выборе подсветки Aml Pages заносит в страницу документа имя файла подсветки. Причем именно имя файла, а не полный путь к нему, т.к. файлы подсветок всегда ищутся в папке программы. Именно по имени файла программа и ищет файл подсветки. Поэтому, если Вы пользуетесь своим собственным файлом подсветки, старайтесь выбирать имя файла так, чтобы в дальнейшем не было необходимости его изменять. Формат ash-файлов позволяет описывать заголовок подсветки в меню Aml Pages непосредственно внутри файла подсветки. Рекомендуется выбирать для своих файлов более или менее уникальное имя, чтобы в будущем не возникало конфликтов с файлами других авторов.
Какие подсветки в Aml Pages есть уже сейчас?
С++, MFC (некоторые особенности библиотеки MFC), Visual Basic, ASH (скрипт файлов подсветки), NSIS-скрипт (NullSoft Installation System), SQL, HTML (Web страницы), Delphi (© Сергей Пуховский), E-mail (текст писем электронной почты), файлы истории версий Aml Pages.

Итак, резюмируя

  • Правила синтаксической подсветки хранятся во внешних файлах (файлы с расширением ash в папке Aml Pages) и могут быть изменены на собственный вкус любым пользователем в любой момент.
  • Можно создавать и новые файлы, для их подключения к Aml Pages достаточно просто поместить файл в папку Aml Pages.
  • Сами файлы сохраняются в несложном текстовом формате, который можно редактировать даже с помощью стандартного Блокнота Windows.
  • Большая часть файлов синтаксической подсветки из дистрибутива Aml Pages снабжена комментариями, поясняющими ту или иную конструкцию в ash-файле.
  • Полное и подробнейшее описание формата файлов синтаксической подсветки есть, как и в справке программы, так и на сайте. Там же Вы найдете советы по использованию, примеры и ответы на вопросы.

Начата разработка специального редактора файлов синтаксической подсветки, который сильно упростит как редактирование файлов подсветки, так и просто наглядный анализ формата ash-файлов, беря большую часть механической работы на себя.
Update: Забили. Не особо было нужно пользователям, да к тому же базовые исходники канули в лету вместе с жестким диском, лет так 20-ть назад.

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

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

Ну, и как всегда, если возникают вопросы, есть пожелания - стучаться в почту или милости прошу в форум Aml Pages, там порою происходят весьма жаркие и на весьма философские темы дискуссии (что лично меня чрезвычайно искренне радует).

PS: В прошлом выпуске рассылки я просил высказаться по поводу дизайна программы установки. Вопрос звучал примерно так: "Что Вы предпочитаете лучший дизайн программы установки Aml Pages или ее меньший размер?". Отдельное спасибо всем ответившим. Также на результаты голосования по этому вопросу можно посмотреть на сайте Aml Pages. Порядка 80% высказались за лучший дизайн, пусть хоть немного (40-50 кб) в ущерб размеру. Но т.к. скрипт установки Aml Pages достаточно сложен, то программа пока не обзавелась новой установкой. Но как примерно будет выглядеть новый дизайн программы установки можно посмотреть на примере программы установки файла справки Aml Pages и некоторых из плагинов.

См. также: Задать вопрос?
Горячие новости [20/02/2024 10:02]:   Выпущена новая версия Aml Pages 9.99 build 2949. Принципиально новые возможности форматирования простого текста. Обсуждение в форуме расположено здесь.
Что нового в этой версии:
(Основое, кратко: щелкните,чтобы развернуть) | полностью тут
  • добавлена команда меню "Формат\Стандартный Шрифт": сброс всех атрибутов форматирования шрифта: размер, гарнитура, курсив, полужирный и.т.д. КРОМЕ цветов (выделения и самого шрифта).
  • Выложено новое видео: как сохранять веб-страницы в Aml Pages через панель Aml Assist (на примере Google Chrome). Статью об использовании Aml Assist см. здесь.
  • Выпущена новая версия плагина Aml2CHM 3.50 (добавлена поддержка новых версий Aml Pages 9.99, исправлен зеркальный порядок папок\страниц в CHM-файле).
  • добавлена новая версия плагина Aml Assist 3.60 с поддержкой новой версии Plugin API;
  • плагин Aml Assist: ставит открытый документ первым в подменю "Мои Файлы";
  • плагин Aml Assist: ставит первой команду меню "Добавить как веб-страницу", если она доступна для использования;
  • Aml Assist в подменю "Мои Файлы" показывает открытый документ;
  • изменен выбора диалог значка (иконки): теперь по умолчанию: поиск не стартует, не ищет в подпапках, не ищет в exe;
  • оптимизация автоподсветки гиперссылок в редакторе текста;
  • забанена настройка редактора текста "Показывать номер строки в Selection Bar";
  • исправлено: переключение представления текстовой страницы с дочерними из текста\в список дочерних\обратно в текст помечало документа как измененный;
  • оптимизирован фоновый поиск иконок при создании страниц;
  • добавлена новая версия плагина AutoReplace 2.16 (исправлено: автозамена при редактировании адреса гиперссылки);
  • добавлена новая версия плагина ChangeLog 1.36 (URL to LogView plugin, новая отрисовка элементов списка);
  • добавлена гиперссылка на видео о сохранении веб-страниц с помощью Aml Assist;
  • в меню трея (области уведомлений) добавлена команда "Закрыть" (документ);
  • исправлено: при удалении страниц документа в корзину из правой панели списка в дереве не показывалась автоматически ветка "Корзина";
  • добавлено: команды меню "Документ Только для чтения", "Только просмотр", "Страница только для чтения", "Защитить страницу паролем" показывают свой статус (вкл\выкл) во всплавающей подсказке;
  • добавлено: команды меню "Документ Только для чтения", "Только просмотр", "Страница только для чтения", "Защитить страницу паролем" когда включены, рисуются жирным шрифтом;
  • вернули возможность переименования страниц в правой панели (списке);
  • Полный список изменений смотрите в разделе Что Нового или можно посмотреть из самой Aml Pages.
     • в меню трея (области уведомлений) добавлена команда "Закрыть" (документ);
     • добавлено: всплывающая подсказке к команде меню "Закрыть всё" показывает список открытых документов;
     • добавлено: команды меню "Документ Только для чтения", "Только просмотр", "Страница только для чтения", "Защитить страницу паролем" показывают свой статус (вкл\выкл) во всплавающей подсказке;
     • добавлено: команды меню "Документ Только для чтения", "Только просмотр", "Страница только для чтения", "Защитить страницу паролем" когда включены, рисуются жирным шрифтом;
     • вернули возможность переименования страниц в правой панели (списке);
     • контекстное меню в правой панели (списке) по Shift+F10 показывается под выделенным элементом;
     • предупреждение при смене формата текста показывает установленные настройки;
     • исправлено: вызов команды удаления страницы при нажатии Delete при редактировании заголовка в правом списке страниц;
     • исправлено: после переименования узла дерева ветка сразу пересортируется, если в родительском узле выставлены соответствующие сортировки (по алфавиту, по датам изменения);
    Форматирование простого текста в Aml Pages Добавлена поддержка элементарного форматирования простого текста: шрифт, его размеры и атрибуты, цвета текста и фона. Добавлена поддержка стилей форматирования текста для страниц простого текста. Новые опции в меню Быстрых настроек. Улучшено окно выбора цвета — теперь с заголовком для чего выбирается цвет.
    Полный список изменений смотрите в разделе Что Нового или можно посмотреть из самой Aml Pages.
  • Обсуждение в форуме расположено здесь. Подписаться на новости по е-почте можно в разделе "Подписаться". Там же есть и список прошлых постов.
    Потихоньку оживает и официальный блог - новые статьи, посты, вопросы-ответы.
    Приобрести лицензию Aml Pages можно в разделе "Купить". Там же можно и продлить обновления.
    e-Блокнот
    Aml Pages
    от 20/02/2024
    Видео
    Aml2Evernote
    Aml2Dropbox
    Aml2LeaderTask
    Spell Checker
    Aml2CHM
    Aml View
    Еще плагины...
    «Клава» + Мышь
    Aml Maple
    от 23/02/2024
    TwinkiePaste
    от 23/02/2024
    WriteYours
    от 23/06/2022
    Password Cracker
    от 12/02/2024
    Сообщество
    Форум Новостная RSS-лента
    ВКонтакте Русская группа пользователей Aml Pages в социальной сети ВКонтакте (на великом и могучем)
    Телеграм Телеграм
    Facebook Facebook
    Обратная связь Спросить нас через форму обратной связи на сайте
    Блог Новостная RSS-лента
    Статьи
    Aml Pages : Телеграм
    Оплатили, но не получили лицензионный ключ?
    Новая версия Aml Pages 9.90
    Как убрать панель Теги
    Импорт из Evernote
    Как выбрать папку для размещения данных из Aml Assist
    Как проверить что нового в Aml Pages
    Новая версия Aml View 2.0
    Новый плагин Aml2Evernote
    Как открыть документ Aml Pages извне?
    Как в закладках Aml Pages показывать только…
    Как быстро перейти к предыдущей странице
    Автозагрузка и Aml Pages
    Как сохранить гиперссылку в Aml Pages
    Что такое быстрые настройки в Aml Pages?
    • Как можно открыть раздел документа Aml Pages извне
    • Можно ли изменить веб-страницу?
    • Фильтры в Aml Pages
    • Проверка новых версий
    • Про гиперсссылки
    • Быстрый доступ к заметкам
    • Синхронизация документов через Интернет
    • Где взять portable-версию Aml Pages?
    • Как быстро открыть документ
    • Все статьи
    На манжетах
    блог автора
    @twitter
    Facebook
    LinkedIn
    Гостевая Carc`а
    Просматривайте и редактируйте ваши программы на JavaScript, PHP, Perl, HTML в текстовом редакторе HippoEDIT (бесплатен для exUSSR)