[Pkg-javascript-commits] [highlight.js] 01/07: New upstream version 9.12.0+dfsg1
Ximin Luo
infinity0 at debian.org
Fri Jul 28 10:55:31 UTC 2017
This is an automated email from the git hooks/post-receive script.
infinity0 pushed a commit to branch master
in repository highlight.js.
commit 8ebaafe94518d208c40767c3d3e1e682ba164e8b
Author: Ximin Luo <infinity0 at debian.org>
Date: Thu Jul 27 13:26:02 2017 +0200
New upstream version 9.12.0+dfsg1
---
AUTHORS.en.txt | 6 +
AUTHORS.ru.txt | 6 +
CHANGES.md | 36 ++
docs/conf.py | 4 +-
package.json | 2 +-
src/languages/1c.js | 565 +++++++++++++++++++++++++++----
src/languages/autohotkey.js | 23 +-
src/languages/bash.js | 2 +-
src/languages/clojure.js | 2 +
src/languages/crystal.js | 25 +-
src/languages/cs.js | 25 +-
src/languages/gams.js | 2 +-
src/languages/julia-repl.js | 46 +++
src/languages/julia.js | 125 +++----
src/languages/kotlin.js | 12 +-
src/languages/qml.js | 2 +-
src/languages/routeros.js | 169 +++++++++
src/languages/rust.js | 2 +-
src/languages/swift.js | 4 +-
src/styles/{default.css => routeros.css} | 17 +-
src/styles/vs2015.css | 115 +++++++
test/detect/1c/default.txt | 46 ++-
test/detect/crystal/default.txt | 14 +-
test/detect/cs/default.txt | 17 +-
test/detect/julia-repl/default.txt | 36 ++
test/detect/julia/default.txt | 65 +++-
test/detect/qml/default.txt | 1 +
test/detect/routeros/default.txt | 17 +
test/markup/clojure/hint_col.expect.txt | 34 ++
test/markup/clojure/hint_col.txt | 34 ++
test/markup/rust/strings.expect.txt | 3 +-
test/markup/rust/strings.txt | 3 +-
32 files changed, 1255 insertions(+), 205 deletions(-)
diff --git a/AUTHORS.en.txt b/AUTHORS.en.txt
index ef2ab97..e64be3a 100644
--- a/AUTHORS.en.txt
+++ b/AUTHORS.en.txt
@@ -246,3 +246,9 @@ Contributors:
- Jordi Petit <jordi.petit at gmail.com>
- Raphaël Parrëe <rparree at edc4it.com>
- Joël Porquet <joel at porquet.org>
+- Alex Arslan <ararslan at comcast.net>
+- Stanislav Belov <stbelov at gmail.com>
+- Ivan Dementev <ivan_div at mail.ru>
+- Nicolas LLOBERA <nllobera at gmail.com>
+- Morten Piibeleht <morten.piibeleht at gmail.com>
+- Martin Clausen <martin.clausene at gmail.com>
diff --git a/AUTHORS.ru.txt b/AUTHORS.ru.txt
index 13dbae3..1f769ed 100644
--- a/AUTHORS.ru.txt
+++ b/AUTHORS.ru.txt
@@ -246,3 +246,9 @@ URL: https://highlightjs.org/
- Джорди Петит <jordi.petit at gmail.com>
- Рафаэль Паре <rparree at edc4it.com>
- Джоель Порке <joel at porquet.org>
+- Алекс Арслан <ararslan at comcast.net>
+- Станислав Белов <stbelov at gmail.com>
+- Иван Дементьев <ivan_div at mail.ru>
+- Николя Ллобера <nllobera at gmail.com>
+- Мортен Пибелехт <morten.piibeleht at gmail.com>
+- Мартин Клаузен <martin.clausene at gmail.com>
diff --git a/CHANGES.md b/CHANGES.md
index 38cd273..05473a2 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,39 @@
+## Version 9.12.0
+
+New language:
+
+- *MikroTik* RouterOS Scripting language by [Ivan Dementev][].
+
+New style:
+
+- *VisualStudio 2015 Dark* by [Nicolas LLOBERA][]
+
+Improvements:
+
+- *Crystal* updated with new keywords and syntaxes by [Tsuyusato Kitsune][].
+- *Julia* updated to the modern definitions by [Alex Arslan][].
+- *julia-repl* added by [Morten Piibeleht][].
+- [Stanislav Belov][] wrote a new definition for *1C*, replacing the one that
+ has not been updated for more than 8 years. The new version supports syntax
+ for versions 7.7 and 8.
+- [Nicolas LLOBERA][] improved C# definition fixing edge cases with function
+ titles detection and added highlighting of `[Attributes]`.
+- [nnnik][] provided a few correctness fixes for *Autohotkey*.
+- [Martin Clausen][] made annotation collections in *Clojure* to look
+ consistently with other kinds.
+- [Alejandro Alonso][] updated *Swift* keywords.
+
+[Tsuyusato Kitsune]: https://github.com/MakeNowJust
+[Alex Arslan]: https://github.com/ararslan
+[Morten Piibeleht]: https://github.com/mortenpi
+[Stanislav Belov]: https://github.com/4ppl
+[Ivan Dementev]: https://github.com/DiVAN1x
+[Nicolas LLOBERA]: https://github.com/Nicolas01
+[nnnik]: https://github.com/nnnik
+[Martin Clausen]: https://github.com/maacl
+[Alejandro Alonso]: https://github.com/Azoy
+
+
## Version 9.11.0
New languages:
diff --git a/docs/conf.py b/docs/conf.py
index 6afebb5..bf8e2f7 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -48,9 +48,9 @@ copyright = u'2012–2017, Ivan Sagalaev'
# built documents.
#
# The short X.Y version.
-version = '9.11'
+version = '9.12'
# The full version, including alpha/beta/rc tags.
-release = '9.11.0'
+release = '9.12.0'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
diff --git a/package.json b/package.json
index 8fbbb29..c68107d 100644
--- a/package.json
+++ b/package.json
@@ -6,7 +6,7 @@
"syntax"
],
"homepage": "https://highlightjs.org/",
- "version": "9.11.0",
+ "version": "9.12.0",
"author": {
"name": "Ivan Sagalaev",
"email": "maniac at softwaremaniacs.org"
diff --git a/src/languages/1c.js b/src/languages/1c.js
index 629befe..822052c 100644
--- a/src/languages/1c.js
+++ b/src/languages/1c.js
@@ -1,85 +1,516 @@
/*
-Language: 1C
-Author: Yuri Ivanov <ivanov at supersoft.ru>
-Contributors: Sergey Baranov <segyrn at yandex.ru>
+Language: 1C:Enterprise (v7, v8)
+Author: Stanislav Belov <stbelov at gmail.com>
+Description: built-in language 1C:Enterprise (v7, v8)
Category: enterprise
*/
function(hljs){
- var IDENT_RE_RU = '[a-zA-Zа-яА-Я][a-zA-Z0-9_а-яА-Я]*';
- var OneS_KEYWORDS = 'возврат дата для если и или иначе иначеесли исключение конецесли ' +
- 'конецпопытки конецпроцедуры конецфункции конеццикла константа не перейти перем ' +
- 'перечисление по пока попытка прервать продолжить процедура строка тогда фс функция цикл ' +
- 'число экспорт';
- var OneS_BUILT_IN = 'ansitooem oemtoansi ввестивидсубконто ввестидату ввестизначение ' +
- 'ввестиперечисление ввестипериод ввестиплансчетов ввестистроку ввестичисло вопрос ' +
- 'восстановитьзначение врег выбранныйплансчетов вызватьисключение датагод датамесяц ' +
- 'датачисло добавитьмесяц завершитьработусистемы заголовоксистемы записьжурналарегистрации ' +
- 'запуститьприложение зафиксироватьтранзакцию значениевстроку значениевстрокувнутр ' +
- 'значениевфайл значениеизстроки значениеизстрокивнутр значениеизфайла имякомпьютера ' +
- 'имяпользователя каталогвременныхфайлов каталогиб каталогпользователя каталогпрограммы ' +
- 'кодсимв командасистемы конгода конецпериодаби конецрассчитанногопериодаби ' +
- 'конецстандартногоинтервала конквартала конмесяца коннедели лев лог лог10 макс ' +
- 'максимальноеколичествосубконто мин монопольныйрежим названиеинтерфейса названиенабораправ ' +
- 'назначитьвид назначитьсчет найти найтипомеченныенаудаление найтиссылки началопериодаби ' +
- 'началостандартногоинтервала начатьтранзакцию начгода начквартала начмесяца начнедели ' +
- 'номерднягода номерднянедели номернеделигода нрег обработкаожидания окр описаниеошибки ' +
- 'основнойжурналрасчетов основнойплансчетов основнойязык открытьформу открытьформумодально ' +
- 'отменитьтранзакцию очиститьокносообщений периодстр полноеимяпользователя получитьвремята ' +
- 'получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта ' +
- 'получитьпустоезначение получитьта прав праводоступа предупреждение префиксавтонумерации ' +
- 'пустаястрока пустоезначение рабочаядаттьпустоезначение рабочаядата разделительстраниц ' +
- 'разделительстрок разм разобратьпозициюдокумента рассчитатьрегистрына ' +
- 'рассчитатьрегистрыпо сигнал симв символтабуляции создатьобъект сокрл сокрлп сокрп ' +
- 'сообщить состояние сохранитьзначение сред статусвозврата стрдлина стрзаменить ' +
- 'стрколичествострок стрполучитьстроку стрчисловхождений сформироватьпозициюдокумента ' +
- 'счетпокоду текущаядата текущеевремя типзначения типзначениястр удалитьобъекты ' +
- 'установитьтана установитьтапо фиксшаблон формат цел шаблон';
- var DQUOTE = {begin: '""'};
- var STR_START = {
- className: 'string',
- begin: '"', end: '"|$',
- contains: [DQUOTE]
- };
- var STR_CONT = {
+
+ // общий паттерн для определения идентификаторов
+ var UNDERSCORE_IDENT_RE = '[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]+';
+
+ // v7 уникальные ключевые слова, отсутствующие в v8 ==> keyword
+ var v7_keywords =
+ 'далее ';
+
+ // v8 ключевые слова ==> keyword
+ var v8_keywords =
+ 'возврат вызватьисключение выполнить для если и из или иначе иначеесли исключение каждого конецесли ' +
+ 'конецпопытки конеццикла не новый перейти перем по пока попытка прервать продолжить тогда цикл экспорт ';
+
+ // keyword : ключевые слова
+ var KEYWORD = v7_keywords + v8_keywords;
+
+ // v7 уникальные директивы, отсутствующие в v8 ==> meta-keyword
+ var v7_meta_keywords =
+ 'загрузитьизфайла ';
+
+ // v8 ключевые слова в инструкциях препроцессора, директивах компиляции, аннотациях ==> meta-keyword
+ var v8_meta_keywords =
+ 'вебклиент вместо внешнеесоединение клиент конецобласти мобильноеприложениеклиент мобильноеприложениесервер ' +
+ 'наклиенте наклиентенасервере наклиентенасерверебезконтекста насервере насерверебезконтекста область перед ' +
+ 'после сервер толстыйклиентобычноеприложение толстыйклиентуправляемоеприложение тонкийклиент ';
+
+ // meta-keyword : ключевые слова в инструкциях препроцессора, директивах компиляции, аннотациях
+ var METAKEYWORD = v7_meta_keywords + v8_meta_keywords;
+
+ // v7 системные константы ==> built_in
+ var v7_system_constants =
+ 'разделительстраниц разделительстрок символтабуляции ';
+
+ // v7 уникальные методы глобального контекста, отсутствующие в v8 ==> built_in
+ var v7_global_context_methods =
+ 'ansitooem oemtoansi ввестивидсубконто ввестиперечисление ввестипериод ввестиплансчетов выбранныйплансчетов ' +
+ 'датагод датамесяц датачисло заголовоксистемы значениевстроку значениеизстроки каталогиб каталогпользователя ' +
+ 'кодсимв конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца ' +
+ 'коннедели лог лог10 максимальноеколичествосубконто названиеинтерфейса названиенабораправ назначитьвид ' +
+ 'назначитьсчет найтиссылки началопериодаби началостандартногоинтервала начгода начквартала начмесяца ' +
+ 'начнедели номерднягода номерднянедели номернеделигода обработкаожидания основнойжурналрасчетов ' +
+ 'основнойплансчетов основнойязык очиститьокносообщений периодстр получитьвремята получитьдатута ' +
+ 'получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта ' +
+ 'префиксавтонумерации пропись пустоезначение разм разобратьпозициюдокумента рассчитатьрегистрына ' +
+ 'рассчитатьрегистрыпо симв создатьобъект статусвозврата стрколичествострок сформироватьпозициюдокумента ' +
+ 'счетпокоду текущеевремя типзначения типзначениястр установитьтана установитьтапо фиксшаблон шаблон ';
+
+ // v8 методы глобального контекста ==> built_in
+ var v8_global_context_methods =
+ 'acos asin atan base64значение base64строка cos exp log log10 pow sin sqrt tan xmlзначение xmlстрока ' +
+ 'xmlтип xmlтипзнч активноеокно безопасныйрежим безопасныйрежимразделенияданных булево ввестидату ввестизначение ' +
+ 'ввестистроку ввестичисло возможностьчтенияxml вопрос восстановитьзначение врег выгрузитьжурналрегистрации ' +
+ 'выполнитьобработкуоповещения выполнитьпроверкуправдоступа вычислить год данныеформывзначение дата день деньгода ' +
+ 'деньнедели добавитьмесяц заблокироватьданныедляредактирования заблокироватьработупользователя завершитьработусистемы ' +
+ 'загрузитьвнешнююкомпоненту закрытьсправку записатьjson записатьxml записатьдатуjson записьжурналарегистрации ' +
+ 'заполнитьзначениясвойств запроситьразрешениепользователя запуститьприложение запуститьсистему зафиксироватьтранзакцию ' +
+ 'значениевданныеформы значениевстрокувнутр значениевфайл значениезаполнено значениеизстрокивнутр значениеизфайла ' +
+ 'изxmlтипа импортмоделиxdto имякомпьютера имяпользователя инициализироватьпредопределенныеданные информацияобошибке ' +
+ 'каталогбиблиотекимобильногоустройства каталогвременныхфайлов каталогдокументов каталогпрограммы кодироватьстроку ' +
+ 'кодлокализацииинформационнойбазы кодсимвола командасистемы конецгода конецдня конецквартала конецмесяца конецминуты ' +
+ 'конецнедели конецчаса конфигурациябазыданныхизмененадинамически конфигурацияизменена копироватьданныеформы ' +
+ 'копироватьфайл краткоепредставлениеошибки лев макс местноевремя месяц мин минута монопольныйрежим найти ' +
+ 'найтинедопустимыесимволыxml найтиокнопонавигационнойссылке найтипомеченныенаудаление найтипоссылкам найтифайлы ' +
+ 'началогода началодня началоквартала началомесяца началоминуты началонедели началочаса начатьзапросразрешенияпользователя ' +
+ 'начатьзапускприложения начатькопированиефайла начатьперемещениефайла начатьподключениевнешнейкомпоненты ' +
+ 'начатьподключениерасширенияработыскриптографией начатьподключениерасширенияработысфайлами начатьпоискфайлов ' +
+ 'начатьполучениекаталогавременныхфайлов начатьполучениекаталогадокументов начатьполучениерабочегокаталогаданныхпользователя ' +
+ 'начатьполучениефайлов начатьпомещениефайла начатьпомещениефайлов начатьсозданиедвоичныхданныхизфайла начатьсозданиекаталога ' +
+ 'начатьтранзакцию начатьудалениефайлов начатьустановкувнешнейкомпоненты начатьустановкурасширенияработыскриптографией ' +
+ 'начатьустановкурасширенияработысфайлами неделягода необходимостьзавершениясоединения номерсеансаинформационнойбазы ' +
+ 'номерсоединенияинформационнойбазы нрег нстр обновитьинтерфейс обновитьнумерациюобъектов обновитьповторноиспользуемыезначения ' +
+ 'обработкапрерыванияпользователя объединитьфайлы окр описаниеошибки оповестить оповеститьобизменении ' +
+ 'отключитьобработчикзапросанастроекклиенталицензирования отключитьобработчикожидания отключитьобработчикоповещения ' +
+ 'открытьзначение открытьиндекссправки открытьсодержаниесправки открытьсправку открытьформу открытьформумодально ' +
+ 'отменитьтранзакцию очиститьжурналрегистрации очиститьнастройкипользователя очиститьсообщения параметрыдоступа ' +
+ 'перейтипонавигационнойссылке переместитьфайл подключитьвнешнююкомпоненту ' +
+ 'подключитьобработчикзапросанастроекклиенталицензирования подключитьобработчикожидания подключитьобработчикоповещения ' +
+ 'подключитьрасширениеработыскриптографией подключитьрасширениеработысфайлами подробноепредставлениеошибки ' +
+ 'показатьвводдаты показатьвводзначения показатьвводстроки показатьвводчисла показатьвопрос показатьзначение ' +
+ 'показатьинформациюобошибке показатьнакарте показатьоповещениепользователя показатьпредупреждение полноеимяпользователя ' +
+ 'получитьcomобъект получитьxmlтип получитьадреспоместоположению получитьблокировкусеансов получитьвремязавершенияспящегосеанса ' +
+ 'получитьвремязасыпанияпассивногосеанса получитьвремяожиданияблокировкиданных получитьданныевыбора ' +
+ 'получитьдополнительныйпараметрклиенталицензирования получитьдопустимыекодылокализации получитьдопустимыечасовыепояса ' +
+ 'получитьзаголовокклиентскогоприложения получитьзаголовоксистемы получитьзначенияотборажурналарегистрации ' +
+ 'получитьидентификаторконфигурации получитьизвременногохранилища получитьимявременногофайла ' +
+ 'получитьимяклиенталицензирования получитьинформациюэкрановклиента получитьиспользованиежурналарегистрации ' +
+ 'получитьиспользованиесобытияжурналарегистрации получитькраткийзаголовокприложения получитьмакетоформления ' +
+ 'получитьмаскувсефайлы получитьмаскувсефайлыклиента получитьмаскувсефайлысервера получитьместоположениепоадресу ' +
+ 'получитьминимальнуюдлинупаролейпользователей получитьнавигационнуюссылку получитьнавигационнуюссылкуинформационнойбазы ' +
+ 'получитьобновлениеконфигурациибазыданных получитьобновлениепредопределенныхданныхинформационнойбазы получитьобщиймакет ' +
+ 'получитьобщуюформу получитьокна получитьоперативнуюотметкувремени получитьотключениебезопасногорежима ' +
+ 'получитьпараметрыфункциональныхопцийинтерфейса получитьполноеимяпредопределенногозначения ' +
+ 'получитьпредставлениянавигационныхссылок получитьпроверкусложностипаролейпользователей получитьразделительпути ' +
+ 'получитьразделительпутиклиента получитьразделительпутисервера получитьсеансыинформационнойбазы ' +
+ 'получитьскоростьклиентскогосоединения получитьсоединенияинформационнойбазы получитьсообщенияпользователю ' +
+ 'получитьсоответствиеобъектаиформы получитьсоставстандартногоинтерфейсаodata получитьструктурухранениябазыданных ' +
+ 'получитьтекущийсеансинформационнойбазы получитьфайл получитьфайлы получитьформу получитьфункциональнуюопцию ' +
+ 'получитьфункциональнуюопциюинтерфейса получитьчасовойпоясинформационнойбазы пользователиос поместитьвовременноехранилище ' +
+ 'поместитьфайл поместитьфайлы прав праводоступа предопределенноезначение представлениекодалокализации представлениепериода ' +
+ 'представлениеправа представлениеприложения представлениесобытияжурналарегистрации представлениечасовогопояса предупреждение ' +
+ 'прекратитьработусистемы привилегированныйрежим продолжитьвызов прочитатьjson прочитатьxml прочитатьдатуjson пустаястрока ' +
+ 'рабочийкаталогданныхпользователя разблокироватьданныедляредактирования разделитьфайл разорватьсоединениесвнешнимисточникомданных ' +
+ 'раскодироватьстроку рольдоступна секунда сигнал символ скопироватьжурналрегистрации смещениелетнеговремени ' +
+ 'смещениестандартноговремени соединитьбуферыдвоичныхданных создатькаталог создатьфабрикуxdto сокрл сокрлп сокрп сообщить ' +
+ 'состояние сохранитьзначение сохранитьнастройкипользователя сред стрдлина стрзаканчиваетсяна стрзаменить стрнайти стрначинаетсяс ' +
+ 'строка строкасоединенияинформационнойбазы стрполучитьстроку стрразделить стрсоединить стрсравнить стрчисловхождений '+
+ 'стрчислострок стршаблон текущаядата текущаядатасеанса текущаяуниверсальнаядата текущаяуниверсальнаядатавмиллисекундах ' +
+ 'текущийвариантинтерфейсаклиентскогоприложения текущийвариантосновногошрифтаклиентскогоприложения текущийкодлокализации ' +
+ 'текущийрежимзапуска текущийязык текущийязыксистемы тип типзнч транзакцияактивна трег удалитьданныеинформационнойбазы ' +
+ 'удалитьизвременногохранилища удалитьобъекты удалитьфайлы универсальноевремя установитьбезопасныйрежим ' +
+ 'установитьбезопасныйрежимразделенияданных установитьблокировкусеансов установитьвнешнююкомпоненту ' +
+ 'установитьвремязавершенияспящегосеанса установитьвремязасыпанияпассивногосеанса установитьвремяожиданияблокировкиданных ' +
+ 'установитьзаголовокклиентскогоприложения установитьзаголовоксистемы установитьиспользованиежурналарегистрации ' +
+ 'установитьиспользованиесобытияжурналарегистрации установитькраткийзаголовокприложения ' +
+ 'установитьминимальнуюдлинупаролейпользователей установитьмонопольныйрежим установитьнастройкиклиенталицензирования ' +
+ 'установитьобновлениепредопределенныхданныхинформационнойбазы установитьотключениебезопасногорежима ' +
+ 'установитьпараметрыфункциональныхопцийинтерфейса установитьпривилегированныйрежим ' +
+ 'установитьпроверкусложностипаролейпользователей установитьрасширениеработыскриптографией ' +
+ 'установитьрасширениеработысфайлами установитьсоединениесвнешнимисточникомданных установитьсоответствиеобъектаиформы ' +
+ 'установитьсоставстандартногоинтерфейсаodata установитьчасовойпоясинформационнойбазы установитьчасовойпояссеанса ' +
+ 'формат цел час часовойпояс часовойпояссеанса число числопрописью этоадресвременногохранилища ';
+
+ // v8 свойства глобального контекста ==> built_in
+ var v8_global_context_property =
+ 'wsссылки библиотекакартинок библиотекамакетовоформлениякомпоновкиданных библиотекастилей бизнеспроцессы ' +
+ 'внешниеисточникиданных внешниеобработки внешниеотчеты встроенныепокупки главныйинтерфейс главныйстиль ' +
+ 'документы доставляемыеуведомления журналыдокументов задачи информацияобинтернетсоединении использованиерабочейдаты ' +
+ 'историяработыпользователя константы критерииотбора метаданные обработки отображениерекламы отправкадоставляемыхуведомлений ' +
+ 'отчеты панельзадачос параметрзапуска параметрысеанса перечисления планывидоврасчета планывидовхарактеристик ' +
+ 'планыобмена планысчетов полнотекстовыйпоиск пользователиинформационнойбазы последовательности проверкавстроенныхпокупок ' +
+ 'рабочаядата расширенияконфигурации регистрыбухгалтерии регистрынакопления регистрырасчета регистрысведений ' +
+ 'регламентныезадания сериализаторxdto справочники средствагеопозиционирования средствакриптографии средствамультимедиа ' +
+ 'средстваотображениярекламы средствапочты средствателефонии фабрикаxdto файловыепотоки фоновыезадания хранилищанастроек ' +
+ 'хранилищевариантовотчетов хранилищенастроекданныхформ хранилищеобщихнастроек хранилищепользовательскихнастроекдинамическихсписков ' +
+ 'хранилищепользовательскихнастроекотчетов хранилищесистемныхнастроек ';
+
+ // built_in : встроенные или библиотечные объекты (константы, классы, функции)
+ var BUILTIN =
+ v7_system_constants +
+ v7_global_context_methods + v8_global_context_methods +
+ v8_global_context_property;
+
+ // v8 системные наборы значений ==> class
+ var v8_system_sets_of_values =
+ 'webцвета windowsцвета windowsшрифты библиотекакартинок рамкистиля символы цветастиля шрифтыстиля ';
+
+ // v8 системные перечисления - интерфейсные ==> class
+ var v8_system_enums_interface =
+ 'автоматическоесохранениеданныхформывнастройках автонумерациявформе автораздвижениесерий ' +
+ 'анимациядиаграммы вариантвыравниванияэлементовизаголовков вариантуправлениявысотойтаблицы ' +
+ 'вертикальнаяпрокруткаформы вертикальноеположение вертикальноеположениеэлемента видгруппыформы ' +
+ 'виддекорацииформы виддополненияэлементаформы видизмененияданных видкнопкиформы видпереключателя ' +
+ 'видподписейкдиаграмме видполяформы видфлажка влияниеразмеранапузырекдиаграммы горизонтальноеположение ' +
+ 'горизонтальноеположениеэлемента группировкаколонок группировкаподчиненныхэлементовформы ' +
+ 'группыиэлементы действиеперетаскивания дополнительныйрежимотображения допустимыедействияперетаскивания ' +
+ 'интервалмеждуэлементамиформы использованиевывода использованиеполосыпрокрутки ' +
+ 'используемоезначениеточкибиржевойдиаграммы историявыборапривводе источникзначенийоситочекдиаграммы ' +
+ 'источникзначенияразмерапузырькадиаграммы категориягруппыкоманд максимумсерий начальноеотображениедерева ' +
+ 'начальноеотображениесписка обновлениетекстаредактирования ориентациядендрограммы ориентациядиаграммы ' +
+ 'ориентацияметокдиаграммы ориентацияметоксводнойдиаграммы ориентацияэлементаформы отображениевдиаграмме ' +
+ 'отображениевлегендедиаграммы отображениегруппыкнопок отображениезаголовкашкалыдиаграммы ' +
+ 'отображениезначенийсводнойдиаграммы отображениезначенияизмерительнойдиаграммы ' +
+ 'отображениеинтерваладиаграммыганта отображениекнопки отображениекнопкивыбора отображениеобсужденийформы ' +
+ 'отображениеобычнойгруппы отображениеотрицательныхзначенийпузырьковойдиаграммы отображениепанелипоиска ' +
+ 'отображениеподсказки отображениепредупрежденияприредактировании отображениеразметкиполосырегулирования ' +
+ 'отображениестраницформы отображениетаблицы отображениетекстазначениядиаграммыганта ' +
+ 'отображениеуправленияобычнойгруппы отображениефигурыкнопки палитрацветовдиаграммы поведениеобычнойгруппы ' +
+ 'поддержкамасштабадендрограммы поддержкамасштабадиаграммыганта поддержкамасштабасводнойдиаграммы ' +
+ 'поисквтаблицепривводе положениезаголовкаэлементаформы положениекартинкикнопкиформы ' +
+ 'положениекартинкиэлементаграфическойсхемы положениекоманднойпанелиформы положениекоманднойпанелиэлементаформы ' +
+ 'положениеопорнойточкиотрисовки положениеподписейкдиаграмме положениеподписейшкалызначенийизмерительнойдиаграммы ' +
+ 'положениесостоянияпросмотра положениестрокипоиска положениетекстасоединительнойлинии положениеуправленияпоиском ' +
+ 'положениешкалывремени порядокотображенияточекгоризонтальнойгистограммы порядоксерийвлегендедиаграммы ' +
+ 'размеркартинки расположениезаголовкашкалыдиаграммы растягиваниеповертикалидиаграммыганта ' +
+ 'режимавтоотображениясостояния режимвводастроктаблицы режимвыборанезаполненного режимвыделениядаты ' +
+ 'режимвыделениястрокитаблицы режимвыделениятаблицы режимизмененияразмера режимизменениясвязанногозначения ' +
+ 'режимиспользованиядиалогапечати режимиспользованияпараметракоманды режиммасштабированияпросмотра ' +
+ 'режимосновногоокнаклиентскогоприложения режимоткрытияокнаформы режимотображениявыделения ' +
+ 'режимотображениягеографическойсхемы режимотображениязначенийсерии режимотрисовкисеткиграфическойсхемы ' +
+ 'режимполупрозрачностидиаграммы режимпробеловдиаграммы режимразмещениянастранице режимредактированияколонки ' +
+ 'режимсглаживаниядиаграммы режимсглаживанияиндикатора режимсписказадач сквозноевыравнивание ' +
+ 'сохранениеданныхформывнастройках способзаполнениятекстазаголовкашкалыдиаграммы ' +
+ 'способопределенияограничивающегозначениядиаграммы стандартнаягруппакоманд стандартноеоформление ' +
+ 'статусоповещенияпользователя стильстрелки типаппроксимациилиниитрендадиаграммы типдиаграммы ' +
+ 'типединицышкалывремени типимпортасерийслоягеографическойсхемы типлиниигеографическойсхемы типлиниидиаграммы ' +
+ 'типмаркерагеографическойсхемы типмаркерадиаграммы типобластиоформления ' +
+ 'типорганизацииисточникаданныхгеографическойсхемы типотображениясериислоягеографическойсхемы ' +
+ 'типотображенияточечногообъектагеографическойсхемы типотображенияшкалыэлементалегендыгеографическойсхемы ' +
+ 'типпоискаобъектовгеографическойсхемы типпроекциигеографическойсхемы типразмещенияизмерений ' +
+ 'типразмещенияреквизитовизмерений типрамкиэлементауправления типсводнойдиаграммы ' +
+ 'типсвязидиаграммыганта типсоединениязначенийпосериямдиаграммы типсоединенияточекдиаграммы ' +
+ 'типсоединительнойлинии типстороныэлементаграфическойсхемы типформыотчета типшкалырадарнойдиаграммы ' +
+ 'факторлиниитрендадиаграммы фигуракнопки фигурыграфическойсхемы фиксациявтаблице форматдняшкалывремени ' +
+ 'форматкартинки ширинаподчиненныхэлементовформы ';
+
+ // v8 системные перечисления - свойства прикладных объектов ==> class
+ var v8_system_enums_objects_properties =
+ 'виддвижениябухгалтерии виддвижениянакопления видпериодарегистрарасчета видсчета видточкимаршрутабизнеспроцесса ' +
+ 'использованиеагрегатарегистранакопления использованиегруппиэлементов использованиережимапроведения ' +
+ 'использованиесреза периодичностьагрегатарегистранакопления режимавтовремя режимзаписидокумента режимпроведениядокумента ';
+
+ // v8 системные перечисления - планы обмена ==> class
+ var v8_system_enums_exchange_plans =
+ 'авторегистрацияизменений допустимыйномерсообщения отправкаэлементаданных получениеэлементаданных ';
+
+ // v8 системные перечисления - табличный документ ==> class
+ var v8_system_enums_tabular_document =
+ 'использованиерасшифровкитабличногодокумента ориентациястраницы положениеитоговколоноксводнойтаблицы ' +
+ 'положениеитоговстроксводнойтаблицы положениетекстаотносительнокартинки расположениезаголовкагруппировкитабличногодокумента ' +
+ 'способчтениязначенийтабличногодокумента типдвустороннейпечати типзаполненияобластитабличногодокумента ' +
+ 'типкурсоровтабличногодокумента типлиниирисункатабличногодокумента типлинииячейкитабличногодокумента ' +
+ 'типнаправленияпереходатабличногодокумента типотображениявыделениятабличногодокумента типотображениялинийсводнойтаблицы ' +
+ 'типразмещениятекстатабличногодокумента типрисункатабличногодокумента типсмещениятабличногодокумента ' +
+ 'типузоратабличногодокумента типфайлатабличногодокумента точностьпечати чередованиерасположениястраниц ';
+
+ // v8 системные перечисления - планировщик ==> class
+ var v8_system_enums_sheduler =
+ 'отображениевремениэлементовпланировщика ';
+
+ // v8 системные перечисления - форматированный документ ==> class
+ var v8_system_enums_formatted_document =
+ 'типфайлаформатированногодокумента ';
+
+ // v8 системные перечисления - запрос ==> class
+ var v8_system_enums_query =
+ 'обходрезультатазапроса типзаписизапроса ';
+
+ // v8 системные перечисления - построитель отчета ==> class
+ var v8_system_enums_report_builder =
+ 'видзаполнениярасшифровкипостроителяотчета типдобавленияпредставлений типизмеренияпостроителяотчета типразмещенияитогов ';
+
+ // v8 системные перечисления - работа с файлами ==> class
+ var v8_system_enums_files =
+ 'доступкфайлу режимдиалогавыборафайла режимоткрытияфайла ';
+
+ // v8 системные перечисления - построитель запроса ==> class
+ var v8_system_enums_query_builder =
+ 'типизмеренияпостроителязапроса ';
+
+ // v8 системные перечисления - анализ данных ==> class
+ var v8_system_enums_data_analysis =
+ 'видданныханализа методкластеризации типединицыинтервалавременианализаданных типзаполнениятаблицырезультатаанализаданных ' +
+ 'типиспользованиячисловыхзначенийанализаданных типисточникаданныхпоискаассоциаций типколонкианализаданныхдереворешений ' +
+ 'типколонкианализаданныхкластеризация типколонкианализаданныхобщаястатистика типколонкианализаданныхпоискассоциаций ' +
+ 'типколонкианализаданныхпоискпоследовательностей типколонкимоделипрогноза типмерырасстоянияанализаданных ' +
+ 'типотсеченияправилассоциации типполяанализаданных типстандартизациианализаданных типупорядочиванияправилассоциациианализаданных ' +
+ 'типупорядочиванияшаблоновпоследовательностейанализаданных типупрощениядереварешений ';
+
+ // v8 системные перечисления - xml, json, xs, dom, xdto, web-сервисы ==> class
+ var v8_system_enums_xml_json_xs_dom_xdto_ws =
+ 'wsнаправлениепараметра вариантxpathxs вариантзаписидатыjson вариантпростоготипаxs видгруппымоделиxs видфасетаxdto ' +
+ 'действиепостроителяdom завершенностьпростоготипаxs завершенностьсоставноготипаxs завершенностьсхемыxs запрещенныеподстановкиxs ' +
+ 'исключениягруппподстановкиxs категорияиспользованияатрибутаxs категорияограниченияидентичностиxs категорияограниченияпространствименxs ' +
+ 'методнаследованияxs модельсодержимогоxs назначениетипаxml недопустимыеподстановкиxs обработкапробельныхсимволовxs обработкасодержимогоxs ' +
+ 'ограничениезначенияxs параметрыотбораузловdom переносстрокjson позициявдокументеdom пробельныесимволыxml типатрибутаxml типзначенияjson ' +
+ 'типканоническогоxml типкомпонентыxs типпроверкиxml типрезультатаdomxpath типузлаdom типузлаxml формаxml формапредставленияxs ' +
+ 'форматдатыjson экранированиесимволовjson ';
+
+ // v8 системные перечисления - система компоновки данных ==> class
+ var v8_system_enums_data_composition_system =
+ 'видсравнениякомпоновкиданных действиеобработкирасшифровкикомпоновкиданных направлениесортировкикомпоновкиданных ' +
+ 'расположениевложенныхэлементоврезультатакомпоновкиданных расположениеитоговкомпоновкиданных расположениегруппировкикомпоновкиданных ' +
+ 'расположениеполейгруппировкикомпоновкиданных расположениеполякомпоновкиданных расположениереквизитовкомпоновкиданных ' +
+ 'расположениересурсовкомпоновкиданных типбухгалтерскогоостаткакомпоновкиданных типвыводатекстакомпоновкиданных ' +
+ 'типгруппировкикомпоновкиданных типгруппыэлементовотборакомпоновкиданных типдополненияпериодакомпоновкиданных ' +
+ 'типзаголовкаполейкомпоновкиданных типмакетагруппировкикомпоновкиданных типмакетаобластикомпоновкиданных типостаткакомпоновкиданных ' +
+ 'типпериодакомпоновкиданных типразмещениятекстакомпоновкиданных типсвязинаборовданныхкомпоновкиданных типэлементарезультатакомпоновкиданных ' +
+ 'расположениелегендыдиаграммыкомпоновкиданных типпримененияотборакомпоновкиданных режимотображенияэлементанастройкикомпоновкиданных ' +
+ 'режимотображениянастроеккомпоновкиданных состояниеэлементанастройкикомпоновкиданных способвосстановлениянастроеккомпоновкиданных ' +
+ 'режимкомпоновкирезультата использованиепараметракомпоновкиданных автопозицияресурсовкомпоновкиданных '+
+ 'вариантиспользованиягруппировкикомпоновкиданных расположениересурсоввдиаграммекомпоновкиданных фиксациякомпоновкиданных ' +
+ 'использованиеусловногооформлениякомпоновкиданных ';
+
+ // v8 системные перечисления - почта ==> class
+ var v8_system_enums_email =
+ 'важностьинтернетпочтовогосообщения обработкатекстаинтернетпочтовогосообщения способкодированияинтернетпочтовоговложения ' +
+ 'способкодированиянеasciiсимволовинтернетпочтовогосообщения типтекстапочтовогосообщения протоколинтернетпочты ' +
+ 'статусразборапочтовогосообщения ';
+
+ // v8 системные перечисления - журнал регистрации ==> class
+ var v8_system_enums_logbook =
+ 'режимтранзакциизаписижурналарегистрации статустранзакциизаписижурналарегистрации уровеньжурналарегистрации ';
+
+ // v8 системные перечисления - криптография ==> class
+ var v8_system_enums_cryptography =
+ 'расположениехранилищасертификатовкриптографии режимвключениясертификатовкриптографии режимпроверкисертификатакриптографии ' +
+ 'типхранилищасертификатовкриптографии ';
+
+ // v8 системные перечисления - ZIP ==> class
+ var v8_system_enums_zip =
+ 'кодировкаименфайловвzipфайле методсжатияzip методшифрованияzip режимвосстановленияпутейфайловzip режимобработкиподкаталоговzip ' +
+ 'режимсохраненияпутейzip уровеньсжатияzip ';
+
+ // v8 системные перечисления -
+ // Блокировка данных, Фоновые задания, Автоматизированное тестирование,
+ // Доставляемые уведомления, Встроенные покупки, Интернет, Работа с двоичными данными ==> class
+ var v8_system_enums_other =
+ 'звуковоеоповещение направлениепереходакстроке позициявпотоке порядокбайтов режимблокировкиданных режимуправленияблокировкойданных ' +
+ 'сервисвстроенныхпокупок состояниефоновогозадания типподписчикадоставляемыхуведомлений уровеньиспользованиязащищенногосоединенияftp ';
+
+ // v8 системные перечисления - схема запроса ==> class
+ var v8_system_enums_request_schema =
+ 'направлениепорядкасхемызапроса типдополненияпериодамисхемызапроса типконтрольнойточкисхемызапроса типобъединениясхемызапроса ' +
+ 'типпараметрадоступнойтаблицысхемызапроса типсоединениясхемызапроса ';
+
+ // v8 системные перечисления - свойства объектов метаданных ==> class
+ var v8_system_enums_properties_of_metadata_objects =
+ 'httpметод автоиспользованиеобщегореквизита автопрефиксномеразадачи вариантвстроенногоязыка видиерархии видрегистранакопления ' +
+ 'видтаблицывнешнегоисточникаданных записьдвиженийприпроведении заполнениепоследовательностей индексирование ' +
+ 'использованиебазыпланавидоврасчета использованиебыстроговыбора использованиеобщегореквизита использованиеподчинения ' +
+ 'использованиеполнотекстовогопоиска использованиеразделяемыхданныхобщегореквизита использованиереквизита ' +
+ 'назначениеиспользованияприложения назначениерасширенияконфигурации направлениепередачи обновлениепредопределенныхданных ' +
+ 'оперативноепроведение основноепредставлениевидарасчета основноепредставлениевидахарактеристики основноепредставлениезадачи ' +
+ 'основноепредставлениепланаобмена основноепредставлениесправочника основноепредставлениесчета перемещениеграницыприпроведении ' +
+ 'периодичностьномерабизнеспроцесса периодичностьномерадокумента периодичностьрегистрарасчета периодичностьрегистрасведений ' +
+ 'повторноеиспользованиевозвращаемыхзначений полнотекстовыйпоискпривводепостроке принадлежностьобъекта проведение ' +
+ 'разделениеаутентификацииобщегореквизита разделениеданныхобщегореквизита разделениерасширенийконфигурацииобщегореквизита '+
+ 'режимавтонумерацииобъектов режимзаписирегистра режимиспользованиямодальности ' +
+ 'режимиспользованиясинхронныхвызововрасширенийплатформыивнешнихкомпонент режимповторногоиспользованиясеансов ' +
+ 'режимполученияданныхвыборапривводепостроке режимсовместимости режимсовместимостиинтерфейса ' +
+ 'режимуправленияблокировкойданныхпоумолчанию сериикодовпланавидовхарактеристик сериикодовпланасчетов ' +
+ 'сериикодовсправочника созданиепривводе способвыбора способпоискастрокипривводепостроке способредактирования ' +
+ 'типданныхтаблицывнешнегоисточникаданных типкодапланавидоврасчета типкодасправочника типмакета типномерабизнеспроцесса ' +
+ 'типномерадокумента типномеразадачи типформы удалениедвижений ';
+
+ // v8 системные перечисления - разные ==> class
+ var v8_system_enums_differents =
+ 'важностьпроблемыприменениярасширенияконфигурации вариантинтерфейсаклиентскогоприложения вариантмасштабаформклиентскогоприложения ' +
+ 'вариантосновногошрифтаклиентскогоприложения вариантстандартногопериода вариантстандартнойдатыначала видграницы видкартинки ' +
+ 'видотображенияполнотекстовогопоиска видрамки видсравнения видцвета видчисловогозначения видшрифта допустимаядлина допустимыйзнак ' +
+ 'использованиеbyteordermark использованиеметаданныхполнотекстовогопоиска источникрасширенийконфигурации клавиша кодвозвратадиалога ' +
+ 'кодировкаxbase кодировкатекста направлениепоиска направлениесортировки обновлениепредопределенныхданных обновлениеприизмененииданных ' +
+ 'отображениепанелиразделов проверказаполнения режимдиалогавопрос режимзапускаклиентскогоприложения режимокругления режимоткрытияформприложения ' +
+ 'режимполнотекстовогопоиска скоростьклиентскогосоединения состояниевнешнегоисточникаданных состояниеобновленияконфигурациибазыданных ' +
+ 'способвыборасертификатаwindows способкодированиястроки статуссообщения типвнешнейкомпоненты типплатформы типповеденияклавишиenter ' +
+ 'типэлементаинформацииовыполненииобновленияконфигурациибазыданных уровеньизоляциитранзакций хешфункция частидаты';
+
+ // class: встроенные наборы значений, системные перечисления (содержат дочерние значения, обращения к которым через разыменование)
+ var CLASS =
+ v8_system_sets_of_values +
+ v8_system_enums_interface +
+ v8_system_enums_objects_properties +
+ v8_system_enums_exchange_plans +
+ v8_system_enums_tabular_document +
+ v8_system_enums_sheduler +
+ v8_system_enums_formatted_document +
+ v8_system_enums_query +
+ v8_system_enums_report_builder +
+ v8_system_enums_files +
+ v8_system_enums_query_builder +
+ v8_system_enums_data_analysis +
+ v8_system_enums_xml_json_xs_dom_xdto_ws +
+ v8_system_enums_data_composition_system +
+ v8_system_enums_email +
+ v8_system_enums_logbook +
+ v8_system_enums_cryptography +
+ v8_system_enums_zip +
+ v8_system_enums_other +
+ v8_system_enums_request_schema +
+ v8_system_enums_properties_of_metadata_objects +
+ v8_system_enums_differents;
+
+ // v8 общие объекты (у объектов есть конструктор, экземпляры создаются методом НОВЫЙ) ==> type
+ var v8_shared_object =
+ 'comобъект ftpсоединение httpзапрос httpсервисответ httpсоединение wsопределения wsпрокси xbase анализданных аннотацияxs ' +
+ 'блокировкаданных буфердвоичныхданных включениеxs выражениекомпоновкиданных генераторслучайныхчисел географическаясхема ' +
+ 'географическиекоординаты графическаясхема группамоделиxs данныерасшифровкикомпоновкиданных двоичныеданные дендрограмма ' +
+ 'диаграмма диаграммаганта диалогвыборафайла диалогвыборацвета диалогвыборашрифта диалограсписаниярегламентногозадания ' +
+ 'диалогредактированиястандартногопериода диапазон документdom документhtml документацияxs доставляемоеуведомление ' +
+ 'записьdom записьfastinfoset записьhtml записьjson записьxml записьzipфайла записьданных записьтекста записьузловdom ' +
+ 'запрос защищенноесоединениеopenssl значенияполейрасшифровкикомпоновкиданных извлечениетекста импортxs интернетпочта ' +
+ 'интернетпочтовоесообщение интернетпочтовыйпрофиль интернетпрокси интернетсоединение информациядляприложенияxs ' +
+ 'использованиеатрибутаxs использованиесобытияжурналарегистрации источникдоступныхнастроеккомпоновкиданных ' +
+ 'итераторузловdom картинка квалификаторыдаты квалификаторыдвоичныхданных квалификаторыстроки квалификаторычисла ' +
+ 'компоновщикмакетакомпоновкиданных компоновщикнастроеккомпоновкиданных конструктормакетаоформлениякомпоновкиданных ' +
+ 'конструкторнастроеккомпоновкиданных конструкторформатнойстроки линия макеткомпоновкиданных макетобластикомпоновкиданных ' +
+ 'макетоформлениякомпоновкиданных маскаxs менеджеркриптографии наборсхемxml настройкикомпоновкиданных настройкисериализацииjson ' +
+ 'обработкакартинок обработкарасшифровкикомпоновкиданных обходдереваdom объявлениеатрибутаxs объявлениенотацииxs ' +
+ 'объявлениеэлементаxs описаниеиспользованиясобытиядоступжурналарегистрации ' +
+ 'описаниеиспользованиясобытияотказвдоступежурналарегистрации описаниеобработкирасшифровкикомпоновкиданных ' +
+ 'описаниепередаваемогофайла описаниетипов определениегруппыатрибутовxs определениегруппымоделиxs ' +
+ 'определениеограниченияидентичностиxs определениепростоготипаxs определениесоставноготипаxs определениетипадокументаdom ' +
+ 'определенияxpathxs отборкомпоновкиданных пакетотображаемыхдокументов параметрвыбора параметркомпоновкиданных ' +
+ 'параметрызаписиjson параметрызаписиxml параметрычтенияxml переопределениеxs планировщик полеанализаданных ' +
+ 'полекомпоновкиданных построительdom построительзапроса построительотчета построительотчетаанализаданных ' +
+ 'построительсхемxml поток потоквпамяти почта почтовоесообщение преобразованиеxsl преобразованиекканоническомуxml ' +
+ 'процессорвыводарезультатакомпоновкиданныхвколлекциюзначений процессорвыводарезультатакомпоновкиданныхвтабличныйдокумент ' +
+ 'процессоркомпоновкиданных разыменовательпространствименdom рамка расписаниерегламентногозадания расширенноеимяxml ' +
+ 'результатчтенияданных своднаядиаграмма связьпараметравыбора связьпотипу связьпотипукомпоновкиданных сериализаторxdto ' +
+ 'сертификатклиентаwindows сертификатклиентафайл сертификаткриптографии сертификатыудостоверяющихцентровwindows ' +
+ 'сертификатыудостоверяющихцентровфайл сжатиеданных системнаяинформация сообщениепользователю сочетаниеклавиш ' +
+ 'сравнениезначений стандартнаядатаначала стандартныйпериод схемаxml схемакомпоновкиданных табличныйдокумент ' +
+ 'текстовыйдокумент тестируемоеприложение типданныхxml уникальныйидентификатор фабрикаxdto файл файловыйпоток ' +
+ 'фасетдлиныxs фасетколичестваразрядовдробнойчастиxs фасетмаксимальноговключающегозначенияxs ' +
+ 'фасетмаксимальногоисключающегозначенияxs фасетмаксимальнойдлиныxs фасетминимальноговключающегозначенияxs ' +
+ 'фасетминимальногоисключающегозначенияxs фасетминимальнойдлиныxs фасетобразцаxs фасетобщегоколичестваразрядовxs ' +
+ 'фасетперечисленияxs фасетпробельныхсимволовxs фильтрузловdom форматированнаястрока форматированныйдокумент ' +
+ 'фрагментxs хешированиеданных хранилищезначения цвет чтениеfastinfoset чтениеhtml чтениеjson чтениеxml чтениеzipфайла ' +
+ 'чтениеданных чтениетекста чтениеузловdom шрифт элементрезультатакомпоновкиданных ';
+
+ // v8 универсальные коллекции значений ==> type
+ var v8_universal_collection =
+ 'comsafearray деревозначений массив соответствие списокзначений структура таблицазначений фиксированнаяструктура ' +
+ 'фиксированноесоответствие фиксированныймассив ';
+
+ // type : встроенные типы
+ var TYPE =
+ v8_shared_object +
+ v8_universal_collection;
+
+ // literal : примитивные типы
+ var LITERAL = 'null истина ложь неопределено';
+
+ // number : числа
+ var NUMBERS = hljs.inherit(hljs.NUMBER_MODE);
+
+ // string : строки
+ var STRINGS = {
className: 'string',
- begin: '\\|', end: '"|$',
- contains: [DQUOTE]
+ begin: '"|\\|', end: '"|$',
+ contains: [{begin: '""'}]
};
- return {
- case_insensitive: true,
- lexemes: IDENT_RE_RU,
- keywords: {keyword: OneS_KEYWORDS, built_in: OneS_BUILT_IN},
+ // number : даты
+ var DATE = {
+ begin: "'", end: "'", excludeBegin: true, excludeEnd: true,
contains: [
- hljs.C_LINE_COMMENT_MODE,
- hljs.NUMBER_MODE,
- STR_START, STR_CONT,
{
- className: 'function',
- begin: '(процедура|функция)', end: '$',
- lexemes: IDENT_RE_RU,
- keywords: 'процедура функция',
+ className: 'number',
+ begin: '\\d{4}([\\.\\\\/:-]?\\d{2}){0,5}'
+ }
+ ]
+ };
+
+ // comment : комментарии
+ var COMMENTS = hljs.inherit(hljs.C_LINE_COMMENT_MODE);
+
+ // meta : инструкции препроцессора, директивы компиляции
+ var META = {
+ className: 'meta',
+ lexemes: UNDERSCORE_IDENT_RE,
+ begin: '#|&', end: '$',
+ keywords: {'meta-keyword': KEYWORD + METAKEYWORD},
+ contains: [
+ COMMENTS
+ ]
+ };
+
+ // symbol : метка goto
+ var SYMBOL = {
+ className: 'symbol',
+ begin: '~', end: ';|:', excludeEnd: true
+ };
+
+ // function : объявление процедур и функций
+ var FUNCTION = {
+ className: 'function',
+ lexemes: UNDERSCORE_IDENT_RE,
+ variants: [
+ {begin: 'процедура|функция', end: '\\)', keywords: 'процедура функция'},
+ {begin: 'конецпроцедуры|конецфункции', keywords: 'конецпроцедуры конецфункции'}
+ ],
+ contains: [
+ {
+ begin: '\\(', end: '\\)', endsParent : true,
contains: [
{
- begin: 'экспорт', endsWithParent: true,
- lexemes: IDENT_RE_RU,
- keywords: 'экспорт',
- contains: [hljs.C_LINE_COMMENT_MODE]
- },
- {
className: 'params',
- begin: '\\(', end: '\\)',
- lexemes: IDENT_RE_RU,
- keywords: 'знач',
- contains: [STR_START, STR_CONT]
+ lexemes: UNDERSCORE_IDENT_RE,
+ begin: UNDERSCORE_IDENT_RE, end: ',', excludeEnd: true, endsWithParent: true,
+ keywords: {
+ keyword: 'знач',
+ literal: LITERAL
+ },
+ contains: [
+ NUMBERS,
+ STRINGS,
+ DATE
+ ]
},
- hljs.C_LINE_COMMENT_MODE,
- hljs.inherit(hljs.TITLE_MODE, {begin: IDENT_RE_RU})
+ COMMENTS
]
},
- {className: 'meta', begin: '#', end: '$'},
- {className: 'number', begin: '\'\\d{2}\\.\\d{2}\\.(\\d{2}|\\d{4})\''} // date
+ hljs.inherit(hljs.TITLE_MODE, {begin: UNDERSCORE_IDENT_RE})
]
};
-}
+
+ return {
+ case_insensitive: true,
+ lexemes: UNDERSCORE_IDENT_RE,
+ keywords: {
+ keyword: KEYWORD,
+ built_in: BUILTIN,
+ class: CLASS,
+ type: TYPE,
+ literal: LITERAL
+ },
+ contains: [
+ META,
+ FUNCTION,
+ COMMENTS,
+ SYMBOL,
+ NUMBERS,
+ STRINGS,
+ DATE
+ ]
+ }
+}
\ No newline at end of file
diff --git a/src/languages/autohotkey.js b/src/languages/autohotkey.js
index 90c5c94..0f8fa41 100644
--- a/src/languages/autohotkey.js
+++ b/src/languages/autohotkey.js
@@ -7,13 +7,14 @@ Category: scripting
function(hljs) {
var BACKTICK_ESCAPE = {
- begin: /`[\s\S]/
+ begin: '`[\\s\\S]'
};
return {
case_insensitive: true,
+ aliases: [ 'ahk' ],
keywords: {
- keyword: 'Break Continue Else Gosub If Loop Return While',
+ keyword: 'Break Continue Critical Exit ExitApp Gosub Goto New OnExit Pause return SetBatchLines SetTimer Suspend Thread Throw Until ahk_id ahk_class ahk_pid ahk_exe ahk_group',
literal: 'A|0 true false NOT AND OR',
built_in: 'ComSpec Clipboard ClipboardAll ErrorLevel',
},
@@ -25,16 +26,26 @@ function(hljs) {
BACKTICK_ESCAPE,
hljs.inherit(hljs.QUOTE_STRING_MODE, {contains: [BACKTICK_ESCAPE]}),
hljs.COMMENT(';', '$', {relevance: 0}),
+ hljs.C_BLOCK_COMMENT_MODE,
{
className: 'number',
begin: hljs.NUMBER_RE,
relevance: 0
},
{
- className: 'variable', // FIXME
- begin: '%', end: '%',
- illegal: '\\n',
- contains: [BACKTICK_ESCAPE]
+ className: 'subst', // FIXED
+ begin: '%(?=[a-zA-Z0-9#_$@])', end: '%',
+ illegal: '[^a-zA-Z0-9#_$@]'
+ },
+ {
+ className: 'built_in',
+ begin: '^\\s*\\w+\\s*,'
+ //I don't really know if this is totally relevant
+ },
+ {
+ className: 'meta',
+ begin: '^\\s*#\w+', end:'$',
+ relevance: 0
},
{
className: 'symbol',
diff --git a/src/languages/bash.js b/src/languages/bash.js
index fdbe27b..5b66442 100644
--- a/src/languages/bash.js
+++ b/src/languages/bash.js
@@ -33,7 +33,7 @@ function(hljs) {
return {
aliases: ['sh', 'zsh'],
- lexemes: /-?[a-z\._]+/,
+ lexemes: /\b-?[a-z\._]+\b/,
keywords: {
keyword:
'if then else elif fi for while in do done case esac function',
diff --git a/src/languages/clojure.js b/src/languages/clojure.js
index 3c3a100..fc272ff 100644
--- a/src/languages/clojure.js
+++ b/src/languages/clojure.js
@@ -2,6 +2,7 @@
Language: Clojure
Description: Clojure syntax (based on lisp.js)
Author: mfornos
+Contributors: Martin Clausen <martin.clausene at gmail.com>
Category: lisp
*/
@@ -92,6 +93,7 @@ function(hljs) {
LIST.contains = [hljs.COMMENT('comment', ''), NAME, BODY];
BODY.contains = DEFAULT_CONTAINS;
COLLECTION.contains = DEFAULT_CONTAINS;
+ HINT_COL.contains = [COLLECTION];
return {
aliases: ['clj'],
diff --git a/src/languages/crystal.js b/src/languages/crystal.js
index b1dc89f..e37fc78 100644
--- a/src/languages/crystal.js
+++ b/src/languages/crystal.js
@@ -11,10 +11,10 @@ function(hljs) {
var CRYSTAL_METHOD_RE = '[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\][=?]?';
var CRYSTAL_KEYWORDS = {
keyword:
- 'abstract alias as asm begin break case class def do else elsif end ensure enum extend for fun if ifdef ' +
- 'include instance_sizeof is_a? lib macro module next of out pointerof private protected rescue responds_to? ' +
- 'return require self sizeof struct super then type typeof union unless until when while with yield ' +
- '__DIR__ __FILE__ __LINE__',
+ 'abstract alias as as? asm begin break case class def do else elsif end ensure enum extend for fun if ' +
+ 'include instance_sizeof is_a? lib macro module next nil? of out pointerof private protected rescue responds_to? ' +
+ 'return require select self sizeof struct super then type typeof union uninitialized unless until when while with yield ' +
+ '__DIR__ __END_LINE__ __FILE__ __LINE__',
literal: 'false nil true'
};
var SUBST = {
@@ -52,6 +52,22 @@ function(hljs) {
{begin: '%w?%', end: '%'},
{begin: '%w?-', end: '-'},
{begin: '%w?\\|', end: '\\|'},
+ {begin: /<<-\w+$/, end: /^\s*\w+$/},
+ ],
+ relevance: 0,
+ };
+ var Q_STRING = {
+ className: 'string',
+ variants: [
+ {begin: '%q\\(', end: '\\)', contains: recursiveParen('\\(', '\\)')},
+ {begin: '%q\\[', end: '\\]', contains: recursiveParen('\\[', '\\]')},
+ {begin: '%q{', end: '}', contains: recursiveParen('{', '}')},
+ {begin: '%q<', end: '>', contains: recursiveParen('<', '>')},
+ {begin: '%q/', end: '/'},
+ {begin: '%q%', end: '%'},
+ {begin: '%q-', end: '-'},
+ {begin: '%q\\|', end: '\\|'},
+ {begin: /<<-'\w+'$/, end: /^\s*\w+$/},
],
relevance: 0,
};
@@ -102,6 +118,7 @@ function(hljs) {
var CRYSTAL_DEFAULT_CONTAINS = [
EXPANSION,
STRING,
+ Q_STRING,
REGEXP,
REGEXP2,
ATTRIBUTE,
diff --git a/src/languages/cs.js b/src/languages/cs.js
index 74ed100..f25d47f 100644
--- a/src/languages/cs.js
+++ b/src/languages/cs.js
@@ -1,6 +1,7 @@
/*
Language: C#
Author: Jason Diamond <jason at diamond.name>
+Contributor: Nicolas LLOBERA <nllobera at gmail.com>
Category: common
*/
@@ -9,12 +10,11 @@ function(hljs) {
keyword:
// Normal keywords.
'abstract as base bool break byte case catch char checked const continue decimal ' +
- 'default delegate do double else enum event explicit extern finally fixed float ' +
- 'for foreach goto if implicit in int interface internal is lock long ' +
+ 'default delegate do double enum event explicit extern finally fixed float ' +
+ 'for foreach goto if implicit in int interface internal is lock long nameof ' +
'object operator out override params private protected public readonly ref sbyte ' +
'sealed short sizeof stackalloc static string struct switch this try typeof ' +
'uint ulong unchecked unsafe ushort using virtual void volatile while ' +
- 'nameof ' +
// Contextual keywords.
'add alias ascending async await by descending dynamic equals from get global group into join ' +
'let on orderby partial remove select set value var where yield',
@@ -78,6 +78,7 @@ function(hljs) {
};
var TYPE_IDENT_RE = hljs.IDENT_RE + '(<' + hljs.IDENT_RE + '(\\s*,\\s*' + hljs.IDENT_RE + ')*>)?(\\[\\])?';
+
return {
aliases: ['csharp'],
keywords: KEYWORDS,
@@ -111,7 +112,9 @@ function(hljs) {
{
className: 'meta',
begin: '#', end: '$',
- keywords: {'meta-keyword': 'if else elif endif define undef warning error line region endregion pragma checksum'}
+ keywords: {
+ 'meta-keyword': 'if else elif endif define undef warning error line region endregion pragma checksum'
+ }
},
STRING,
hljs.C_NUMBER_MODE,
@@ -134,15 +137,23 @@ function(hljs) {
]
},
{
+ // [Attributes("")]
+ className: 'meta',
+ begin: '^\\s*\\[', excludeBegin: true, end: '\\]', excludeEnd: true,
+ contains: [
+ {className: 'meta-string', begin: /"/, end: /"/}
+ ]
+ },
+ {
// Expression keywords prevent 'keyword Name(...)' from being
// recognized as a function definition
- beginKeywords: 'new return throw await',
+ beginKeywords: 'new return throw await else',
relevance: 0
},
{
className: 'function',
- begin: '(' + TYPE_IDENT_RE + '\\s+)+' + hljs.IDENT_RE + '\\s*\\(', returnBegin: true, end: /[{;=]/,
- excludeEnd: true,
+ begin: '(' + TYPE_IDENT_RE + '\\s+)+' + hljs.IDENT_RE + '\\s*\\(', returnBegin: true,
+ end: /[{;=]/, excludeEnd: true,
keywords: KEYWORDS,
contains: [
{
diff --git a/src/languages/gams.js b/src/languages/gams.js
index 875b94b..e7eca52 100644
--- a/src/languages/gams.js
+++ b/src/languages/gams.js
@@ -149,7 +149,7 @@ function (hljs) {
contains: [
{ // Function title
className: 'title',
- begin: /^[a-z][a-z0-9_]+/,
+ begin: /^[a-z0-9_]+/,
},
PARAMS,
SYMBOLS,
diff --git a/src/languages/julia-repl.js b/src/languages/julia-repl.js
new file mode 100644
index 0000000..6c7ca78
--- /dev/null
+++ b/src/languages/julia-repl.js
@@ -0,0 +1,46 @@
+/*
+Language: Julia REPL
+Description: Julia REPL sessions
+Author: Morten Piibeleht <morten.piibeleht at gmail.com>
+Requires: julia.js
+
+The Julia REPL code blocks look something like the following:
+
+ julia> function foo(x)
+ x + 1
+ end
+ foo (generic function with 1 method)
+
+They start on a new line with "julia>". Usually there should also be a space after this, but
+we also allow the code to start right after the > character. The code may run over multiple
+lines, but the additional lines must start with six spaces (i.e. be indented to match
+"julia>"). The rest of the code is assumed to be output from the executed code and will be
+left un-highlighted.
+
+Using simply spaces to identify line continuations may get a false-positive if the output
+also prints out six spaces, but such cases should be rare.
+*/
+
+function(hljs) {
+ return {
+ contains: [
+ {
+ className: 'meta',
+ begin: /^julia>/,
+ relevance: 10,
+ starts: {
+ // end the highlighting if we are on a new line and the line does not have at
+ // least six spaces in the beginning
+ end: /^(?![ ]{6})/,
+ subLanguage: 'julia'
+ },
+ // jldoctest Markdown blocks are used in the Julia manual and package docs indicate
+ // code snippets that should be verified when the documentation is built. They can be
+ // either REPL-like or script-like, but are usually REPL-like and therefore we apply
+ // julia-repl highlighting to them. More information can be found in Documenter's
+ // manual: https://juliadocs.github.io/Documenter.jl/latest/man/doctests.html
+ aliases: ['jldoctest']
+ }
+ ]
+ }
+}
diff --git a/src/languages/julia.js b/src/languages/julia.js
index 55022ac..15bc720 100644
--- a/src/languages/julia.js
+++ b/src/languages/julia.js
@@ -1,109 +1,90 @@
/*
Language: Julia
Author: Kenta Sato <bicycle1885 at gmail.com>
+Contributors: Alex Arslan <ararslan at comcast.net>
*/
function(hljs) {
// Since there are numerous special names in Julia, it is too much trouble
// to maintain them by hand. Hence these names (i.e. keywords, literals and
- // built-ins) are automatically generated from Julia (v0.3.0 and v0.4.1)
- // itself through following scripts for each.
+ // built-ins) are automatically generated from Julia v0.6 itself through
+ // the following scripts for each.
var KEYWORDS = {
- // # keyword generator
- // println("in")
+ // # keyword generator, multi-word keywords handled manually below
+ // foreach(println, ["in", "isa", "where"])
// for kw in Base.REPLCompletions.complete_keyword("")
- // println(kw)
+ // if !(contains(kw, " ") || kw == "struct")
+ // println(kw)
+ // end
// end
keyword:
- 'in abstract baremodule begin bitstype break catch ccall const continue do else elseif end export ' +
- 'finally for function global if immutable import importall let local macro module quote return try type ' +
- 'typealias using while',
+ 'in isa where ' +
+ 'baremodule begin break catch ccall const continue do else elseif end export false finally for function ' +
+ 'global if import importall let local macro module quote return true try using while ' +
+ // legacy, to be deprecated in the next release
+ 'type immutable abstract bitstype typealias ',
// # literal generator
// println("true")
// println("false")
// for name in Base.REPLCompletions.completions("", 0)[1]
// try
- // s = symbol(name)
- // v = eval(s)
- // if !isa(v, Function) &&
- // !isa(v, DataType) &&
- // !isa(v, IntrinsicFunction) &&
- // !issubtype(typeof(v), Tuple) &&
- // !isa(v, Union) &&
- // !isa(v, Module) &&
- // !isa(v, TypeConstructor) &&
- // !isa(v, TypeVar) &&
- // !isa(v, Colon)
+ // v = eval(Symbol(name))
+ // if !(v isa Function || v isa Type || v isa TypeVar || v isa Module || v isa Colon)
// println(name)
// end
// end
// end
literal:
- // v0.3
- 'true false ARGS CPU_CORES C_NULL DL_LOAD_PATH DevNull ENDIAN_BOM ENV I|0 Inf Inf16 Inf32 ' +
- 'InsertionSort JULIA_HOME LOAD_PATH MS_ASYNC MS_INVALIDATE MS_SYNC MergeSort NaN NaN16 NaN32 OS_NAME QuickSort ' +
- 'RTLD_DEEPBIND RTLD_FIRST RTLD_GLOBAL RTLD_LAZY RTLD_LOCAL RTLD_NODELETE RTLD_NOLOAD RTLD_NOW RoundDown ' +
- 'RoundFromZero RoundNearest RoundToZero RoundUp STDERR STDIN STDOUT VERSION WORD_SIZE catalan cglobal e|0 eu|0 ' +
- 'eulergamma golden im nothing pi γ π φ ' +
- // v0.4 (diff)
- 'Inf64 NaN64 RoundNearestTiesAway RoundNearestTiesUp ',
+ 'true false ' +
+ 'ARGS C_NULL DevNull ENDIAN_BOM ENV I Inf Inf16 Inf32 Inf64 InsertionSort JULIA_HOME LOAD_PATH MergeSort ' +
+ 'NaN NaN16 NaN32 NaN64 PROGRAM_FILE QuickSort RoundDown RoundFromZero RoundNearest RoundNearestTiesAway ' +
+ 'RoundNearestTiesUp RoundToZero RoundUp STDERR STDIN STDOUT VERSION catalan e|0 eu|0 eulergamma golden im ' +
+ 'nothing pi γ π φ ',
// # built_in generator:
// for name in Base.REPLCompletions.completions("", 0)[1]
// try
- // v = eval(symbol(name))
- // if isa(v, DataType) || isa(v, TypeConstructor) || isa(v, TypeVar)
+ // v = eval(Symbol(name))
+ // if v isa Type || v isa TypeVar
// println(name)
// end
// end
// end
built_in:
- // v0.3
- 'ANY ASCIIString AbstractArray AbstractRNG AbstractSparseArray Any ArgumentError Array Associative Base64Pipe ' +
- 'Bidiagonal BigFloat BigInt BitArray BitMatrix BitVector Bool BoundsError Box CFILE Cchar Cdouble Cfloat Char ' +
- 'CharString Cint Clong Clonglong ClusterManager Cmd Coff_t Colon Complex Complex128 Complex32 Complex64 ' +
- 'Condition Cptrdiff_t Cshort Csize_t Cssize_t Cuchar Cuint Culong Culonglong Cushort Cwchar_t DArray DataType ' +
- 'DenseArray Diagonal Dict DimensionMismatch DirectIndexString Display DivideError DomainError EOFError ' +
- 'EachLine Enumerate ErrorException Exception Expr Factorization FileMonitor FileOffset Filter Float16 Float32 ' +
- 'Float64 FloatRange FloatingPoint Function GetfieldNode GotoNode Hermitian IO IOBuffer IOStream IPv4 IPv6 ' +
- 'InexactError Int Int128 Int16 Int32 Int64 Int8 IntSet Integer InterruptException IntrinsicFunction KeyError ' +
- 'LabelNode LambdaStaticData LineNumberNode LoadError LocalProcess MIME MathConst MemoryError MersenneTwister ' +
- 'Method MethodError MethodTable Module NTuple NewvarNode Nothing Number ObjectIdDict OrdinalRange ' +
- 'OverflowError ParseError PollingFileWatcher ProcessExitedException ProcessGroup Ptr QuoteNode Range Range1 ' +
- 'Ranges Rational RawFD Real Regex RegexMatch RemoteRef RepString RevString RopeString RoundingMode Set ' +
- 'SharedArray Signed SparseMatrixCSC StackOverflowError Stat StatStruct StepRange String SubArray SubString ' +
- 'SymTridiagonal Symbol SymbolNode Symmetric SystemError Task TextDisplay Timer TmStruct TopNode Triangular ' +
- 'Tridiagonal Type TypeConstructor TypeError TypeName TypeVar UTF16String UTF32String UTF8String UdpSocket ' +
- 'Uint Uint128 Uint16 Uint32 Uint64 Uint8 UndefRefError UndefVarError UniformScaling UnionType UnitRange ' +
- 'Unsigned Vararg VersionNumber WString WeakKeyDict WeakRef Woodbury Zip ' +
- // v0.4 (diff)
- 'AbstractChannel AbstractFloat AbstractString AssertionError Base64DecodePipe Base64EncodePipe BufferStream ' +
- 'CapturedException CartesianIndex CartesianRange Channel Cintmax_t CompositeException Cstring Cuintmax_t ' +
- 'Cwstring Date DateTime Dims Enum GenSym GlobalRef HTML InitError InvalidStateException Irrational LinSpace ' +
- 'LowerTriangular NullException Nullable OutOfMemoryError Pair PartialQuickSort Pipe RandomDevice ' +
- 'ReadOnlyMemoryError ReentrantLock Ref RemoteException SegmentationFault SerializationState SimpleVector ' +
- 'TCPSocket Text Tuple UDPSocket UInt UInt128 UInt16 UInt32 UInt64 UInt8 UnicodeError Union UpperTriangular ' +
- 'Val Void WorkerConfig AbstractMatrix AbstractSparseMatrix AbstractSparseVector AbstractVecOrMat AbstractVector ' +
- 'DenseMatrix DenseVecOrMat DenseVector Matrix SharedMatrix SharedVector StridedArray StridedMatrix ' +
- 'StridedVecOrMat StridedVector VecOrMat Vector '
+ 'ANY AbstractArray AbstractChannel AbstractFloat AbstractMatrix AbstractRNG AbstractSerializer AbstractSet ' +
+ 'AbstractSparseArray AbstractSparseMatrix AbstractSparseVector AbstractString AbstractUnitRange AbstractVecOrMat ' +
+ 'AbstractVector Any ArgumentError Array AssertionError Associative Base64DecodePipe Base64EncodePipe Bidiagonal '+
+ 'BigFloat BigInt BitArray BitMatrix BitVector Bool BoundsError BufferStream CachingPool CapturedException ' +
+ 'CartesianIndex CartesianRange Cchar Cdouble Cfloat Channel Char Cint Cintmax_t Clong Clonglong ClusterManager ' +
+ 'Cmd CodeInfo Colon Complex Complex128 Complex32 Complex64 CompositeException Condition ConjArray ConjMatrix ' +
+ 'ConjVector Cptrdiff_t Cshort Csize_t Cssize_t Cstring Cuchar Cuint Cuintmax_t Culong Culonglong Cushort Cwchar_t ' +
+ 'Cwstring DataType Date DateFormat DateTime DenseArray DenseMatrix DenseVecOrMat DenseVector Diagonal Dict ' +
+ 'DimensionMismatch Dims DirectIndexString Display DivideError DomainError EOFError EachLine Enum Enumerate ' +
+ 'ErrorException Exception ExponentialBackOff Expr Factorization FileMonitor Float16 Float32 Float64 Function ' +
+ 'Future GlobalRef GotoNode HTML Hermitian IO IOBuffer IOContext IOStream IPAddr IPv4 IPv6 IndexCartesian IndexLinear ' +
+ 'IndexStyle InexactError InitError Int Int128 Int16 Int32 Int64 Int8 IntSet Integer InterruptException ' +
+ 'InvalidStateException Irrational KeyError LabelNode LinSpace LineNumberNode LoadError LowerTriangular MIME Matrix ' +
+ 'MersenneTwister Method MethodError MethodTable Module NTuple NewvarNode NullException Nullable Number ObjectIdDict ' +
+ 'OrdinalRange OutOfMemoryError OverflowError Pair ParseError PartialQuickSort PermutedDimsArray Pipe ' +
+ 'PollingFileWatcher ProcessExitedException Ptr QuoteNode RandomDevice Range RangeIndex Rational RawFD ' +
+ 'ReadOnlyMemoryError Real ReentrantLock Ref Regex RegexMatch RemoteChannel RemoteException RevString RoundingMode ' +
+ 'RowVector SSAValue SegmentationFault SerializationState Set SharedArray SharedMatrix SharedVector Signed ' +
+ 'SimpleVector Slot SlotNumber SparseMatrixCSC SparseVector StackFrame StackOverflowError StackTrace StepRange ' +
+ 'StepRangeLen StridedArray StridedMatrix StridedVecOrMat StridedVector String SubArray SubString SymTridiagonal ' +
+ 'Symbol Symmetric SystemError TCPSocket Task Text TextDisplay Timer Tridiagonal Tuple Type TypeError TypeMapEntry ' +
+ 'TypeMapLevel TypeName TypeVar TypedSlot UDPSocket UInt UInt128 UInt16 UInt32 UInt64 UInt8 UndefRefError UndefVarError ' +
+ 'UnicodeError UniformScaling Union UnionAll UnitRange Unsigned UpperTriangular Val Vararg VecElement VecOrMat Vector ' +
+ 'VersionNumber Void WeakKeyDict WeakRef WorkerConfig WorkerPool '
};
// ref: http://julia.readthedocs.org/en/latest/manual/variables/#allowed-variable-names
var VARIABLE_NAME_RE = '[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*';
// placeholder for recursive self-reference
- var DEFAULT = { lexemes: VARIABLE_NAME_RE, keywords: KEYWORDS, illegal: /<\// };
-
- var TYPE_ANNOTATION = {
- className: 'type',
- begin: /::/
- };
-
- var SUBTYPE = {
- className: 'type',
- begin: /<:/
+ var DEFAULT = {
+ lexemes: VARIABLE_NAME_RE, keywords: KEYWORDS, illegal: /<\//
};
// ref: http://julia.readthedocs.org/en/latest/manual/integers-and-floating-point-numbers/
@@ -168,13 +149,17 @@ function(hljs) {
DEFAULT.contains = [
NUMBER,
CHAR,
- TYPE_ANNOTATION,
- SUBTYPE,
STRING,
COMMAND,
MACROCALL,
COMMENT,
- hljs.HASH_COMMENT_MODE
+ hljs.HASH_COMMENT_MODE,
+ {
+ className: 'keyword',
+ begin:
+ '\\b(((abstract|primitive)\\s+)type|(mutable\\s+)?struct)\\b'
+ },
+ {begin: /<:/} // relevance booster
];
INTERPOLATION.contains = DEFAULT.contains;
diff --git a/src/languages/kotlin.js b/src/languages/kotlin.js
index 115f01f..340152a 100644
--- a/src/languages/kotlin.js
+++ b/src/languages/kotlin.js
@@ -37,17 +37,17 @@ function(hljs) {
// for string templates
var SUBST = {
className: 'subst',
- variants: [
- {begin: '\\$' + hljs.UNDERSCORE_IDENT_RE},
- {begin: '\\${', end: '}', contains: [hljs.APOS_STRING_MODE, hljs.C_NUMBER_MODE]}
- ]
+ begin: '\\${', end: '}', contains: [hljs.APOS_STRING_MODE, hljs.C_NUMBER_MODE]
+ };
+ var VARIABLE = {
+ className: 'variable', begin: '\\$' + hljs.UNDERSCORE_IDENT_RE
};
var STRING = {
className: 'string',
variants: [
{
begin: '"""', end: '"""',
- contains: [SUBST]
+ contains: [VARIABLE, SUBST]
},
// Can't use built-in modes easily, as we want to use STRING in the meta
// context as 'meta-string' and there's no syntax to remove explicitly set
@@ -60,7 +60,7 @@ function(hljs) {
{
begin: '"', end: '"',
illegal: /\n/,
- contains: [hljs.BACKSLASH_ESCAPE, SUBST]
+ contains: [hljs.BACKSLASH_ESCAPE, VARIABLE, SUBST]
}
]
};
diff --git a/src/languages/qml.js b/src/languages/qml.js
index 40f7930..f680ae0 100644
--- a/src/languages/qml.js
+++ b/src/languages/qml.js
@@ -25,7 +25,7 @@ function(hljs) {
'module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect ' +
'Behavior bool color coordinate date double enumeration font geocircle georectangle ' +
'geoshape int list matrix4x4 parent point quaternion real rect ' +
- 'size string url var variant vector2d vector3d vector4d' +
+ 'size string url variant vector2d vector3d vector4d' +
'Promise'
};
diff --git a/src/languages/routeros.js b/src/languages/routeros.js
new file mode 100644
index 0000000..e502189
--- /dev/null
+++ b/src/languages/routeros.js
@@ -0,0 +1,169 @@
+/*
+Language: Microtik RouterOS script
+Author: Ivan Dementev <ivan_div at mail.ru>
+Description: Scripting host provides a way to automate some router maintenance tasks by means of executing user-defined scripts bounded to some event occurrence
+URL: https://wiki.mikrotik.com/wiki/Manual:Scripting
+*/
+
+// Colors from RouterOS terminal:
+// green - #0E9A00
+// teal - #0C9A9A
+// purple - #99069A
+// light-brown - #9A9900
+
+function(hljs) {
+
+ var STATEMENTS = 'foreach do while for if from to step else on-error and or not in';
+
+ // Global commands: Every global command should start with ":" token, otherwise it will be treated as variable.
+ var GLOBAL_COMMANDS = 'global local beep delay put len typeof pick log time set find environment terminal error execute parse resolve toarray tobool toid toip toip6 tonum tostr totime';
+
+ // Common commands: Following commands available from most sub-menus:
+ var COMMON_COMMANDS = 'add remove enable disable set get print export edit find run debug error info warning';
+
+ var LITERALS = 'true false yes no nothing nil null';
+
+ var OBJECTS = 'traffic-flow traffic-generator firewall scheduler aaa accounting address-list address align area bandwidth-server bfd bgp bridge client clock community config connection console customer default dhcp-client dhcp-server discovery dns e-mail ethernet filter firewall firmware gps graphing group hardware health hotspot identity igmp-proxy incoming instance interface ip ipsec ipv6 irq l2tp-server lcd ldp logging mac-server mac-winbox mangle manual mirror mme mpls nat nd neigh [...]
+
+ // print parameters
+ // Several parameters are available for print command:
+ // ToDo: var PARAMETERS_PRINT = 'append as-value brief detail count-only file follow follow-only from interval terse value-list without-paging where info';
+ // ToDo: var OPERATORS = '&& and ! not || or in ~ ^ & << >> + - * /';
+ // ToDo: var TYPES = 'num number bool boolean str string ip ip6-prefix id time array';
+ // ToDo: The following tokens serve as delimiters in the grammar: () [] {} : ; $ /
+
+ var VAR_PREFIX = 'global local set for foreach';
+
+ var VAR = {
+ className: 'variable',
+ variants: [
+ {begin: /\$[\w\d#@][\w\d_]*/},
+ {begin: /\$\{(.*?)}/}
+ ]
+ };
+
+ var QUOTE_STRING = {
+ className: 'string',
+ begin: /"/, end: /"/,
+ contains: [
+ hljs.BACKSLASH_ESCAPE,
+ VAR,
+ {
+ className: 'variable',
+ begin: /\$\(/, end: /\)/,
+ contains: [hljs.BACKSLASH_ESCAPE]
+ }
+ ]
+ };
+
+ var APOS_STRING = {
+ className: 'string',
+ begin: /'/, end: /'/
+ };
+
+ var IPADDR = '((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\b';
+ var IPADDR_wBITMASK = IPADDR+'/(3[0-2]|[1-2][0-9]|\\d)';
+ //////////////////////////////////////////////////////////////////////
+ return {
+ aliases: ['routeros', 'mikrotik'],
+ case_insensitive: true,
+ lexemes: /:?[\w-]+/,
+ keywords: {
+ literal: LITERALS,
+ keyword: STATEMENTS + ' :' + STATEMENTS.split(' ').join(' :') + ' :' + GLOBAL_COMMANDS.split(' ').join(' :'),
+ },
+ contains: [
+ { // недопустимые конструкции
+ variants: [
+ { begin: /^@/, end: /$/, }, // dns
+ { begin: /\/\*/, end: /\*\//, }, // -- comment
+ { begin: /%%/, end: /$/, }, // -- comment
+ { begin: /^'/, end: /$/, }, // Monkey one line comment
+ { begin: /^\s*\/[\w-]+=/, end: /$/, }, // jboss-cli
+ { begin: /\/\//, end: /$/, }, // Stan comment
+ { begin: /^\[\</, end: /\>\]$/, }, // F# class declaration?
+ { begin: /<\//, end: />/, }, // HTML tags
+ { begin: /^facet /, end: /\}/, }, // roboconf - лютый костыль )))
+ { begin: '^1\\.\\.(\\d+)$', end: /$/, }, // tap
+ ],
+ illegal: /./,
+ },
+ hljs.COMMENT('^#', '$'),
+ QUOTE_STRING,
+ APOS_STRING,
+ VAR,
+ { // attribute=value
+ begin: /[\w-]+\=([^\s\{\}\[\]\(\)]+)/,
+ relevance: 0,
+ returnBegin: true,
+ contains: [
+ {
+ className: 'attribute',
+ begin: /[^=]+/
+ },
+ {
+ begin: /=/,
+ endsWithParent: true,
+ relevance: 0,
+ contains: [
+ QUOTE_STRING,
+ APOS_STRING,
+ VAR,
+ {
+ className: 'literal',
+ begin: '\\b(' + LITERALS.split(' ').join('|') + ')\\b',
+ },
+ /*{
+ // IPv4 addresses and subnets
+ className: 'number',
+ variants: [
+ {begin: IPADDR_wBITMASK+'(,'+IPADDR_wBITMASK+')*'}, //192.168.0.0/24,1.2.3.0/24
+ {begin: IPADDR+'-'+IPADDR}, // 192.168.0.1-192.168.0.3
+ {begin: IPADDR+'(,'+IPADDR+')*'}, // 192.168.0.1,192.168.0.34,192.168.24.1,192.168.0.1
+ ]
+ }, // */
+ /*{
+ // MAC addresses and DHCP Client IDs
+ className: 'number',
+ begin: /\b(1:)?([0-9A-Fa-f]{1,2}[:-]){5}([0-9A-Fa-f]){1,2}\b/,
+ }, //*/
+ {
+ // Не форматировать не классифицированные значения. Необходимо для исключения подсветки значений как built_in.
+ // className: 'number',
+ begin: /("[^"]*"|[^\s\{\}\[\]]+)/,
+ }, //*/
+ ]
+ } //*/
+ ]
+ },//*/
+ {
+ // HEX values
+ className: 'number',
+ begin: /\*[0-9a-fA-F]+/,
+ }, //*/
+
+ {
+ begin: '\\b(' + COMMON_COMMANDS.split(' ').join('|') + ')([\\s\[\(]|\])',
+ returnBegin: true,
+ contains: [
+ {
+ className: 'builtin-name', //'function',
+ begin: /\w+/,
+ },
+ ],
+ },
+
+ {
+ className: 'built_in',
+ variants: [
+ {begin: '(\\.\\./|/|\\s)((' + OBJECTS.split(' ').join('|') + ');?\\s)+',relevance: 10,},
+ {begin: /\.\./,},
+ ],
+ },//*/
+ ]
+ };
+}
+
+
+
+
diff --git a/src/languages/rust.js b/src/languages/rust.js
index 1abbbf6..4775042 100644
--- a/src/languages/rust.js
+++ b/src/languages/rust.js
@@ -51,7 +51,7 @@ function(hljs) {
{
className: 'string',
variants: [
- { begin: /r(#*)".*?"\1(?!#)/ },
+ { begin: /r(#*)"(.|\n)*?"\1(?!#)/ },
{ begin: /b?'\\?(x\w{2}|u\w{4}|U\w{8}|.)'/ }
]
},
diff --git a/src/languages/swift.js b/src/languages/swift.js
index 60d780f..7a973ea 100644
--- a/src/languages/swift.js
+++ b/src/languages/swift.js
@@ -10,9 +10,9 @@ function(hljs) {
var SWIFT_KEYWORDS = {
keyword: '__COLUMN__ __FILE__ __FUNCTION__ __LINE__ as as! as? associativity ' +
'break case catch class continue convenience default defer deinit didSet do ' +
- 'dynamic dynamicType else enum extension fallthrough false final for func ' +
+ 'dynamic dynamicType else enum extension fallthrough false fileprivate final for func ' +
'get guard if import in indirect infix init inout internal is lazy left let ' +
- 'mutating nil none nonmutating operator optional override postfix precedence ' +
+ 'mutating nil none nonmutating open operator optional override postfix precedence ' +
'prefix private protocol Protocol public repeat required rethrows return ' +
'right self Self set static struct subscript super switch throw throws true ' +
'try try! try? Type typealias unowned var weak where while willSet',
diff --git a/src/styles/default.css b/src/styles/routeros.css
similarity index 84%
copy from src/styles/default.css
copy to src/styles/routeros.css
index f1bfade..ebe2399 100644
--- a/src/styles/default.css
+++ b/src/styles/routeros.css
@@ -1,6 +1,6 @@
/*
-Original highlight.js style (c) Ivan Sagalaev <maniac at softwaremaniacs.org>
+ highlight.js style for Microtik RouterOS script
*/
@@ -11,7 +11,6 @@ Original highlight.js style (c) Ivan Sagalaev <maniac at softwaremaniacs.org>
background: #F0F0F0;
}
-
/* Base color: saturation 0; */
.hljs,
@@ -24,7 +23,6 @@ Original highlight.js style (c) Ivan Sagalaev <maniac at softwaremaniacs.org>
}
.hljs-keyword,
-.hljs-attribute,
.hljs-selector-tag,
.hljs-meta-keyword,
.hljs-doctag,
@@ -32,6 +30,17 @@ Original highlight.js style (c) Ivan Sagalaev <maniac at softwaremaniacs.org>
font-weight: bold;
}
+.hljs-attribute {
+ color: #0E9A00;
+}
+
+.hljs-function {
+ color: #99069A;
+}
+
+.hljs-builtin-name {
+ color: #99069A;
+}
/* User color: hue: 0 */
@@ -73,7 +82,7 @@ Original highlight.js style (c) Ivan Sagalaev <maniac at softwaremaniacs.org>
.hljs-bullet,
.hljs-code,
.hljs-addition {
- color: #397300;
+ color: #0C9A9A;
}
diff --git a/src/styles/vs2015.css b/src/styles/vs2015.css
new file mode 100644
index 0000000..d1d9be3
--- /dev/null
+++ b/src/styles/vs2015.css
@@ -0,0 +1,115 @@
+/*
+ * Visual Studio 2015 dark style
+ * Author: Nicolas LLOBERA <nllobera at gmail.com>
+ */
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: #1E1E1E;
+ color: #DCDCDC;
+}
+
+.hljs-keyword,
+.hljs-literal,
+.hljs-symbol,
+.hljs-name {
+ color: #569CD6;
+}
+.hljs-link {
+ color: #569CD6;
+ text-decoration: underline;
+}
+
+.hljs-built_in,
+.hljs-type {
+ color: #4EC9B0;
+}
+
+.hljs-number,
+.hljs-class {
+ color: #B8D7A3;
+}
+
+.hljs-string,
+.hljs-meta-string {
+ color: #D69D85;
+}
+
+.hljs-regexp,
+.hljs-template-tag {
+ color: #9A5334;
+}
+
+.hljs-subst,
+.hljs-function,
+.hljs-title,
+.hljs-params,
+.hljs-formula {
+ color: #DCDCDC;
+}
+
+.hljs-comment,
+.hljs-quote {
+ color: #57A64A;
+ font-style: italic;
+}
+
+.hljs-doctag {
+ color: #608B4E;
+}
+
+.hljs-meta,
+.hljs-meta-keyword,
+.hljs-tag {
+ color: #9B9B9B;
+}
+
+.hljs-variable,
+.hljs-template-variable {
+ color: #BD63C5;
+}
+
+.hljs-attr,
+.hljs-attribute,
+.hljs-builtin-name {
+ color: #9CDCFE;
+}
+
+.hljs-section {
+ color: gold;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
+
+/*.hljs-code {
+ font-family:'Monospace';
+}*/
+
+.hljs-bullet,
+.hljs-selector-tag,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-selector-attr,
+.hljs-selector-pseudo {
+ color: #D7BA7D;
+}
+
+.hljs-addition {
+ background-color: #144212;
+ display: inline-block;
+ width: 100%;
+}
+
+.hljs-deletion {
+ background-color: #600;
+ display: inline-block;
+ width: 100%;
+}
diff --git a/test/detect/1c/default.txt b/test/detect/1c/default.txt
index 7dcdf3e..be0d86d 100644
--- a/test/detect/1c/default.txt
+++ b/test/detect/1c/default.txt
@@ -1,16 +1,30 @@
-#Если Клиент Тогда
-Перем СимвольныйКодКаталога = "ля-ля-ля"; //комментарий
-Функция Сообщить(Знач ТекстСообщения, ТекстСообщения2) Экспорт //комментарий к функции
- x=ТекстСообщения+ТекстСообщения2+"
- |строка1
- |строка2
- |строка3";
-КонецФункции
-#КонецЕсли
-
-// Процедура ПриНачалеРаботыСистемы
-//
-Процедура ПриНачалеРаботыСистемы()
- Обработки.Помощник.ПолучитьФорму("Форма").Открыть();
- d = '21.01.2008'
-КонецПроцедуры
+#ЗагрузитьИзФайла ext_module.txt // директива 7.7
+#Если Клиент ИЛИ НаКлиенте Тогда // инструкции препроцессора
+ &НаКлиентеНаСервереБезКонтекста // директивы компиляции
+ Функция ТолстыйКлиентОбычноеПриложение(Знач Параметр1 = Неопределено, // комментарий
+ Параметр2 = "", ПараметрN = 123.45, ПарамNN) Экспорт // еще комментарий
+ Попытка
+ Результат_Булевы_Значения = Новый Структура("П1, П2", Истина, Ложь, NULL, Неопределено);
+ Перейти ~МеткаGOTO; // комментарий
+ РезультатТаблицаДат = Новый ТаблицаЗначений;
+ РезультатТаблицаДат.Колонки.Добавить("Колонка1",
+ Новый ОписаниеТипов("Дата", , ,
+ Новый КвалификаторыДаты(ЧастиДаты.ДатаВремя));
+ НС = РезультатТаблицаДат.Добавить(); НС["Колонка1"] = '20170101120000');
+ Исключение
+ ОписаниеОшибки = ОписаниеОшибки(); // встроенная функция
+ Масс = Новый Массив; // встроенный тип
+ Для Каждого Значение Из Масс Цикл
+ Сообщить(Значение + Символы.ПС + "
+ |продолжение строки"); // продолжение многострочной строки
+ Продолжить; Прервать;
+ КонецЦикла;
+ СправочникСсылка = Справочники.Языки.НайтиПоНаименованию("ru"); // встроенные типы
+ СправочникОбъект = СправочникСсылка.ПолучитьОбъект();
+ ПеречислениеСсылка = Перечисления.ВидыМодификацииДанных.Изменен;
+ ВызватьИсключение ОписаниеОшибки;
+ КонецПопытки;
+ ~МеткаGOTO: // еще комментарий
+ ВД = ВидДвиженияБухгалтерии.Дебет;
+ КонецФункции // ТолстыйКлиентОбычноеПриложение()
+#КонецЕсли
\ No newline at end of file
diff --git a/test/detect/crystal/default.txt b/test/detect/crystal/default.txt
index 68882d4..78ca884 100644
--- a/test/detect/crystal/default.txt
+++ b/test/detect/crystal/default.txt
@@ -1,5 +1,5 @@
class Person
- def initialize(@name)
+ def initialize(@name : String)
end
def greet
@@ -11,8 +11,8 @@ class Employee < Person
end
employee = Employee.new "John"
-employee.greet #=> "Hi, I'm John"
-employee.is_a?(Person) #=> true
+employee.greet # => "Hi, I'm John"
+employee.is_a?(Person) # => true
@[Link("m")]
lib C
@@ -20,4 +20,10 @@ lib C
fun cos(value : Float64) : Float64
end
-C.cos(1.5_f64) #=> 0.0707372
+C.cos(1.5_f64) # => 0.0707372
+
+s = uninitialized String
+s = <<-'STR'
+\hello\world
+\hello\world
+STR
diff --git a/test/detect/cs/default.txt b/test/detect/cs/default.txt
index a1cf9ff..14c3676 100644
--- a/test/detect/cs/default.txt
+++ b/test/detect/cs/default.txt
@@ -1,11 +1,16 @@
-using System;
+using System.IO.Compression;
#pragma warning disable 414, 3021
-/// <summary>Main task</summary>
-async Task<int, int> AccessTheWebAsync()
+namespace MyApplication
{
- Console.WriteLine("Hello, World!");
- string urlContents = await getStringTask;
- return urlContents.Length;
+ [Obsolete("...")]
+ class Program : IInterface
+ {
+ public static List<int> JustDoIt(int count)
+ {
+ Console.WriteLine($"Hello {Name}!");
+ return new List<int>(new int[] { 1, 2, 3 })
+ }
+ }
}
diff --git a/test/detect/julia-repl/default.txt b/test/detect/julia-repl/default.txt
new file mode 100644
index 0000000..d7ffa8c
--- /dev/null
+++ b/test/detect/julia-repl/default.txt
@@ -0,0 +1,36 @@
+julia> function foo(x) x + 1 end
+foo (generic function with 1 method)
+
+julia> foo(42)
+43
+
+julia> foo(42) === 43.
+false
+
+
+Here we match all three lines of code:
+
+julia> function foo(x::Float64)
+ 42. - x
+ end
+foo (generic function with 2 methods)
+
+julia> for x in Any[1, 2, 3.4]
+ println("foo($x) = $(foo(x))")
+ end
+foo(1) = 2
+foo(2) = 3
+foo(3.4) = 38.6
+
+
+... unless it is not properly indented:
+
+julia> function foo(x)
+ x + 1
+end
+
+
+Ordinary Julia code does not get highlighted:
+
+Pkg.add("Combinatorics")
+abstract type Foo end
diff --git a/test/detect/julia/default.txt b/test/detect/julia/default.txt
index 02b3d0e..12f9814 100644
--- a/test/detect/julia/default.txt
+++ b/test/detect/julia/default.txt
@@ -1,12 +1,60 @@
-using Profile
+### Types
-# type definition
-immutable Point{T<:FloatingPoint}
+# Old-style definitions
+
+immutable Point{T<:AbstractFloat}
index::Int
x::T
y::T
end
+abstract A
+
+type B <: A end
+
+typealias P Point{Float16}
+
+# New-style definitions
+
+struct Plus
+ f::typeof(+)
+end
+
+mutable struct Mut
+ mutable::A # mutable should not be highlighted (not followed by struct)
+ primitive::B # primitive should not be highlighted (not followed by type)
+end
+
+primitive type Prim 8 end
+
+abstract type Abstr end
+
+### Modules
+
+module M
+
+using X
+import Y
+importall Z
+
+export a, b, c
+
+end # module
+
+baremodule Bare
+end
+
+### New in 0.6
+
+# where, infix isa, UnionAll
+function F{T}(x::T) where T
+ for i in x
+ i isa UnionAll && return
+ end
+end
+
+### Miscellaneous
+
#=
Multi
Line
@@ -24,7 +72,7 @@ function method0(x, y::Int; version::VersionNumber=v"0.1.2")
s = 1.2
変数 = "variable"
- if s * 100_000 ≥ 5.2e+10 && true || is(x, nothing)
+ if s * 100_000 ≥ 5.2e+10 && true || x === nothing
s = 1. + .5im
elseif 1 ∈ [1, 2, 3]
println("s is $s and 変数 is $変数")
@@ -34,6 +82,7 @@ function method0(x, y::Int; version::VersionNumber=v"0.1.2")
end
local var = rand(10)
+ global g = 44
var[1:5]
var[5:end-1]
var[end]
@@ -41,6 +90,14 @@ function method0(x, y::Int; version::VersionNumber=v"0.1.2")
opt = "-la"
run(`ls $opt`)
+ try
+ ccall(:lib, (Ptr{Void},), Ref{C_NULL})
+ catch
+ throw(ArgumentError("wat"))
+ finally
+ warn("god save the queen")
+ end
+
'\u2200' != 'T'
return 5s / 2
diff --git a/test/detect/qml/default.txt b/test/detect/qml/default.txt
index 7d2a259..79a888c 100644
--- a/test/detect/qml/default.txt
+++ b/test/detect/qml/default.txt
@@ -26,6 +26,7 @@ Window {
nameFilters: ["*.png", "*.jpg", "*.gif"]
}
Component.onCompleted: {
+ var x;
x = Math.random() * root.width - width / 2
rotation = Math.random() * 13 - 6
if (pinch.scale > 0) {
diff --git a/test/detect/routeros/default.txt b/test/detect/routeros/default.txt
new file mode 100644
index 0000000..0c364ae
--- /dev/null
+++ b/test/detect/routeros/default.txt
@@ -0,0 +1,17 @@
+# Берем список DNS серверов из /ip dns
+ # Проверяем их доступность,
+# и только рабочие прописываем в настройки DHCP сервера
+:global ActiveDNSServers []
+:local PingResult 0
+:foreach serv in=[/ip dns get servers] do={
+ :do {:set PingResult [ping $serv count=3]} on-error={:set PingResult 0}
+ :if ($PingResult=3) do={ :set ActiveDNSServers ($ActiveDNSServers,$serv) }
+# отладочный вывод в журнал
+ :log info "Server: $serv, Ping-result: $PingResult";
+}
+
+/ip dhcp-server network set [find address=192.168.254.0/24] dns-server=$ActiveDNSServers
+
+#--- FIX TTL ----
+/ip firewall mangle chain=postrouting action=change-ttl new-ttl=set:128 comment="NAT hide"
+
diff --git a/test/markup/clojure/hint_col.expect.txt b/test/markup/clojure/hint_col.expect.txt
new file mode 100644
index 0000000..06e96c0
--- /dev/null
+++ b/test/markup/clojure/hint_col.expect.txt
@@ -0,0 +1,34 @@
+(<span class="hljs-name"><span class="hljs-builtin-name">import</span></span> [java.lang.annotation Retention RetentionPolicy Target ElementType]
+ [javax.xml.ws WebServiceRef WebServiceRefs])
+
+(<span class="hljs-name">definterface</span> Foo (<span class="hljs-name">foo</span> []))
+
+<span class="hljs-comment">;; annotation on type</span>
+(<span class="hljs-name"><span class="hljs-builtin-name">deftype</span></span> <span class="hljs-comment">^{Deprecated true
+ Retention RetentionPolicy/RUNTIME
+ javax.annotation.processing.SupportedOptions [<span class="hljs-string">"foo"</span> <span class="hljs-string">"bar"</span> <span class="hljs-string">"baz"</span>]
+ javax.xml.ws.soap.Addressing {<span class="hljs-symbol">:enabled</span> <span class="hljs-literal">false</span> <span class="hljs-symbol">:required</span> <span class="hljs-literal">true</span>}
+ WebServiceRefs [(<span class="hljs-name">WebServiceRef</span> {<span class="hljs-symbol">:name</span> <span class="hljs-string">"fred"</span> <span class="hljs-symbol">:type</span> String})
+ (<span class="hljs-name">WebServiceRef</span> {<span class="hljs-symbol">:name</span> <span class="hljs-string">"ethel"</span> <span class="hljs-symbol">:mappedName</span> <span class="hljs-string">"lucy"</span>})]}</span>
+ Bar [<span class="hljs-comment">^int</span> a
+ <span class="hljs-comment">;; on field</span>
+ <span class="hljs-comment">^{:tag int
+ Deprecated true
+ Retention RetentionPolicy/RUNTIME
+ javax.annotation.processing.SupportedOptions [<span class="hljs-string">"foo"</span> <span class="hljs-string">"bar"</span> <span class="hljs-string">"baz"</span>]
+ javax.xml.ws.soap.Addressing {<span class="hljs-symbol">:enabled</span> <span class="hljs-literal">false</span> <span class="hljs-symbol">:required</span> <span class="hljs-literal">true</span>}
+ WebServiceRefs [(<span class="hljs-name">WebServiceRef</span> {<span class="hljs-symbol">:name</span> <span class="hljs-string">"fred"</span> <span class="hljs-symbol">:type</span> String})
+ (<span class="hljs-name">WebServiceRef</span> {<span class="hljs-symbol">:name</span> <span class="hljs-string">"ethel"</span> <span class="hljs-symbol">:mappedName</span> <span class="hljs-string">"lucy"</span>})]}</span>
+ b]
+ <span class="hljs-comment">;; on method</span>
+ Foo (<span class="hljs-comment">^{Deprecated true
+ Retention RetentionPolicy/RUNTIME
+ javax.annotation.processing.SupportedOptions [<span class="hljs-string">"foo"</span> <span class="hljs-string">"bar"</span> <span class="hljs-string">"baz"</span>]
+ javax.xml.ws.soap.Addressing {<span class="hljs-symbol">:enabled</span> <span class="hljs-literal">false</span> <span class="hljs-symbol">:required</span> <span class="hljs-literal">true</span>}
+ WebServiceRefs [(<span class="hljs-name">WebServiceRef</span> {<span class="hljs-symbol">:name</span> <span class="hljs-string">"fred"</span> <span class="hljs-symbol">:type</span> String})
+ (<span class="hljs-name">WebServiceRef</span> {<span class="hljs-symbol">:name</span> <span class="hljs-string">"ethel"</span> <span class="hljs-symbol">:mappedName</span> <span class="hljs-string">"lucy"</span>})]}</span>
+ foo [this] <span class="hljs-number">42</span>))
+
+(<span class="hljs-name"><span class="hljs-builtin-name">seq</span></span> (<span class="hljs-name">.getAnnotations</span> Bar))
+(<span class="hljs-name"><span class="hljs-builtin-name">seq</span></span> (<span class="hljs-name">.getAnnotations</span> (<span class="hljs-name">.getField</span> Bar <span class="hljs-string">"b"</span>)))
+(<span class="hljs-name"><span class="hljs-builtin-name">seq</span></span> (<span class="hljs-name">.getAnnotations</span> (<span class="hljs-name">.getMethod</span> Bar <span class="hljs-string">"foo"</span> <span class="hljs-literal">nil</span>)))
diff --git a/test/markup/clojure/hint_col.txt b/test/markup/clojure/hint_col.txt
new file mode 100644
index 0000000..9584dec
--- /dev/null
+++ b/test/markup/clojure/hint_col.txt
@@ -0,0 +1,34 @@
+(import [java.lang.annotation Retention RetentionPolicy Target ElementType]
+ [javax.xml.ws WebServiceRef WebServiceRefs])
+
+(definterface Foo (foo []))
+
+;; annotation on type
+(deftype ^{Deprecated true
+ Retention RetentionPolicy/RUNTIME
+ javax.annotation.processing.SupportedOptions ["foo" "bar" "baz"]
+ javax.xml.ws.soap.Addressing {:enabled false :required true}
+ WebServiceRefs [(WebServiceRef {:name "fred" :type String})
+ (WebServiceRef {:name "ethel" :mappedName "lucy"})]}
+ Bar [^int a
+ ;; on field
+ ^{:tag int
+ Deprecated true
+ Retention RetentionPolicy/RUNTIME
+ javax.annotation.processing.SupportedOptions ["foo" "bar" "baz"]
+ javax.xml.ws.soap.Addressing {:enabled false :required true}
+ WebServiceRefs [(WebServiceRef {:name "fred" :type String})
+ (WebServiceRef {:name "ethel" :mappedName "lucy"})]}
+ b]
+ ;; on method
+ Foo (^{Deprecated true
+ Retention RetentionPolicy/RUNTIME
+ javax.annotation.processing.SupportedOptions ["foo" "bar" "baz"]
+ javax.xml.ws.soap.Addressing {:enabled false :required true}
+ WebServiceRefs [(WebServiceRef {:name "fred" :type String})
+ (WebServiceRef {:name "ethel" :mappedName "lucy"})]}
+ foo [this] 42))
+
+(seq (.getAnnotations Bar))
+(seq (.getAnnotations (.getField Bar "b")))
+(seq (.getAnnotations (.getMethod Bar "foo" nil)))
diff --git a/test/markup/rust/strings.expect.txt b/test/markup/rust/strings.expect.txt
index 9d966c2..c36dd7c 100644
--- a/test/markup/rust/strings.expect.txt
+++ b/test/markup/rust/strings.expect.txt
@@ -10,4 +10,5 @@
<span class="hljs-string">r"hello"</span>;
<span class="hljs-string">r###"world"###</span>;
-<span class="hljs-string">r##" "### "# "##</span>;
+<span class="hljs-string">r##" "###
+"# "##</span>;
diff --git a/test/markup/rust/strings.txt b/test/markup/rust/strings.txt
index 892e9a5..5a3da73 100644
--- a/test/markup/rust/strings.txt
+++ b/test/markup/rust/strings.txt
@@ -10,4 +10,5 @@ b"hello";
r"hello";
r###"world"###;
-r##" "### "# "##;
+r##" "###
+"# "##;
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/highlight.js.git
More information about the Pkg-javascript-commits
mailing list