Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 38 additions & 4 deletions src/languages/1c.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
Language: 1C:Enterprise
Author: Stanislav Belov <stbelov@gmail.com>
Description: built-in language 1C:Enterprise (v7, v8)
Category: enterprise
Category: enterprise, common
*/

export default function(hljs) {
Expand All @@ -13,13 +13,25 @@ export default function(hljs) {
const v7_keywords =
'далее ';

const v7_query_keywords =
'ВЫБРАТЬ ИЗ ГДЕ УПОРЯДОЧИТЬ ПО ИТОГИ ПО ОБЩИЕ СГРУППИРОВАТЬ ПО '
+ 'СВЯЗАННЫЙ ЛЕВЫЙ ПРАВЫЙ ВНУТРЕННИЙ ПОЛНЫЙ ОБЪЕДИНЕНИЕ РАЗРЕШЕННЫЕ '
+ 'КАК И НЕ ИЛИ ВЫРАЗИТЬ В КОЛИЧЕСТВО УНИКАЛЬНЫЕ '
+ 'ПЕРВЫЕ ВСЕ НУЛЕВЫЕ НЕНУЛЕВЫЕ ПОМЕТКИУДАЛЕНИЯ АВТОУПОРЯДОЧИВАНИЕ '
+ 'ВЫБОР КОГДА ТОГДА ИНАЧЕ КОНЕЦ ДНЕЙ ';

// v8 ключевые слова ==> keyword
const v8_keywords =
'возврат вызватьисключение выполнить для если и из или иначе иначеесли исключение каждого конецесли '
+ 'конецпопытки конеццикла не новый перейти перем по пока попытка прервать продолжить тогда цикл экспорт ';

// ключевые слова синтаксиса запросов
const v8_query_keywords =
'ВЫБРАТЬ КАК ИЗ ЛЕВОЕ СОЕДИНЕНИЕ ПО ГДЕ РАЗРЕШЕННЫЕ ВЫРАЗИТЬ СТРОКА В '
+ 'ВЫБОР КОГДА ТОГДА ИНАЧЕ КОНЕЦ UNION ОБЪЕДИНИТЬ ИТОГИ СГРУППИРОВАТЬ УПОРЯДОЧИТЬ ИМЕЮЩИЕ ВНУТРЕННЕЕ СОЕДИНЕНИЕ НЕ И';

// keyword : ключевые слова
const KEYWORD = v7_keywords + v8_keywords;
const KEYWORD = v7_keywords + v7_query_keywords + v8_keywords + v8_query_keywords;

// v7 уникальные директивы, отсутствующие в v8 ==> meta-keyword
const v7_meta_keywords =
Expand All @@ -29,7 +41,10 @@ export default function(hljs) {
const v8_meta_keywords =
'вебклиент вместо внешнеесоединение клиент конецобласти мобильноеприложениеклиент мобильноеприложениесервер '
+ 'наклиенте наклиентенасервере наклиентенасерверебезконтекста насервере насерверебезконтекста область перед '
+ 'после сервер толстыйклиентобычноеприложение толстыйклиентуправляемоеприложение тонкийклиент ';
+ 'после сервер толстыйклиентобычноеприложение толстыйклиентуправляемоеприложение тонкийклиент '
// Дополнительные объекты
+ 'внешнийисточникданных внешняяобработка внешнийотчет '
+ 'общийреквизит общиймодуль общаяформа общиймакет ';

// meta-keyword : ключевые слова в инструкциях препроцессора, директивах компиляции, аннотациях
const METAKEYWORD = v7_meta_keywords + v8_meta_keywords;
Expand Down Expand Up @@ -421,6 +436,13 @@ export default function(hljs) {
// number : числа
const NUMBERS = hljs.inherit(hljs.NUMBER_MODE);

// operator : Звездочка для выбора всех полей
const OPERATORS = {
className: 'selector',
begin: /\*/,
relevance: 0
};

// string : строки
const STRINGS = {
className: 'string',
Expand Down Expand Up @@ -485,6 +507,17 @@ export default function(hljs) {
{
begin: 'конецпроцедуры|конецфункции',
keywords: 'конецпроцедуры конецфункции'
},
{
begin: 'ЕСТЬNULL|ВЫРАЗИТЬ|РАЗНОСТЬДАТ|ДАТАВРЕМЯ|ГОД|МЕСЯЦ|ДЕНЬ|ДЕНЬГОДА|ДЕНЬНЕДЕЛИ|НЕДЕЛЯГОДА|ЧАС|МИНУТА|СЕКУНДА|НАЧАЛОПЕРИОДА|КОНЕЦПЕРИОДА|ДОБАВИТЬКДАТЕ|СУММА|КОЛИЧЕСТВО|МИНИМУМ|МАКСИМУМ|СРЕДНЕЕ',
end: '\\(',
returnBegin: true,
contains: [
{
className: 'function-built_in',
begin: UNDERSCORE_IDENT_RE
}
]
}
],
contains: [
Expand Down Expand Up @@ -536,7 +569,8 @@ export default function(hljs) {
NUMBERS,
STRINGS,
DATE,
PUNCTUATION
PUNCTUATION,
OPERATORS
]
};
}
47 changes: 25 additions & 22 deletions src/styles/1c-light.css
Original file line number Diff line number Diff line change
Expand Up @@ -7,37 +7,41 @@
License: see project LICENSE
Touched: 2023
*/

/* end baseline CSS */

.hljs {
color: #0000ff;
background: #ffffff;
}

/* Base color: saturation 0; */

.hljs-subst {
/* default */
}

/* purposely ignored */
.hljs-formula,
.hljs-attr,
.hljs-property {}

.hljs-comment {
color: #008000;
}
.hljs-tag {
color: #444a;
}

.hljs-tag .hljs-name,
.hljs-tag .hljs-attr {
color: #444;
}


.hljs-function-built_in {
color: #800080
}

.hljs-punctuation,
.hljs-function,
.hljs-keyword,
Expand All @@ -52,7 +56,7 @@
.hljs-params {
color: #0000ff;
}

/* User color: hue: 0 */

.hljs-string,
Expand All @@ -65,12 +69,12 @@
.hljs-deletion {
color: #000000;
}

.hljs-title,
.hljs-section {
color: #0000ff;
}

.hljs-regexp,
.hljs-variable,
.hljs-template-variable,
Expand All @@ -79,43 +83,42 @@
.hljs-operator,
.hljs-selector-pseudo {
color: #ab5656;
}
}

/* Language color: hue: 90; */

.hljs-literal {
color: #ff0000;
}

.hljs-built_in,
.hljs-bullet,
.hljs-code,
.hljs-addition {
color: #0000ff;
}


/* Meta color: hue: 200 */

.hljs-meta {
color: #963200;
}

.hljs-meta .hljs-string {
color: #963200;
}

.hljs-meta .hljs-keyword {
color: #963200;
}

/* Misc effects */

.hljs-emphasis {
font-style: italic;
}

.hljs-strong {
font-weight: bold;
}