Добавление новых сниппетов

This commit is contained in:
2025-08-21 02:29:09 +03:00
parent 624f783ff3
commit 64564df5c0
3 changed files with 366 additions and 8 deletions

View File

@@ -2,8 +2,12 @@
"name": "nc310-syntax", "name": "nc310-syntax",
"displayName": "Balt-System PLC Syntax", "displayName": "Balt-System PLC Syntax",
"description": "Подсветка, цвета и сниппеты Baltsystem PLC", "description": "Подсветка, цвета и сниппеты Baltsystem PLC",
"version": "1.0.0", "version": "1.0.1",
"publisher": "andrewkydev", "publisher": "andrewkydev",
"repository": {
"type": "git",
"url": "https://github.com/andrewkydev/nc310-syntax"
},
"pricing": "Free", "pricing": "Free",
"engines": { "engines": {
"vscode": "^1.45.0" "vscode": "^1.45.0"

View File

@@ -1,27 +1,316 @@
{ {
"UCG template": { "UCG template": {
"prefix": "ucg", "prefix": "ucg",
"body": ["(UCG,2,X-33X33,Y-33Y33,Z-15Z0,1,-3)"], "body": [
"(UCG,2,X-33X33,Y-33Y33,Z-15Z0,1,-3)"
],
"description": "Шаблон UCG" "description": "Шаблон UCG"
}, },
"URT cycle": { "URT cycle": {
"prefix": "urt", "prefix": "urt",
"body": ["(URT,${1:0})"], "body": [
"(URT,${1:0})"
],
"description": "Цикл URT" "description": "Цикл URT"
}, },
"RPT cycle": { "RPT cycle": {
"prefix": "rpt", "prefix": "rpt",
"body": ["(RPT,${1:E0})"], "body": [
"(RPT,${1:E0})"
],
"description": "Цикл RPT" "description": "Цикл RPT"
}, },
"ERP": { "ERP": {
"prefix": "erp", "prefix": "erp",
"body": ["(ERP)"], "body": [
"(ERP)"
],
"description": "Маркер ERP" "description": "Маркер ERP"
}, },
"E variable": { "E variable": {
"prefix": "evar", "prefix": "evar",
"body": ["E${1:30}=${2:0}"], "body": [
"E${1:30}=${2:0}"
],
"description": "Переменная E" "description": "Переменная E"
},
"BNC jump": {
"prefix": "bnc",
"body": [
"(BNC,${1:LABEL})"
],
"description": "Безусловный переход к метке"
},
"BGT jump": {
"prefix": "bgt",
"body": [
"(BGT,${1:VAR1},${2:VAR2},${3:LABEL})"
],
"description": "Переход, если VAR1 > VAR2"
},
"BLT jump": {
"prefix": "blt",
"body": [
"(BLT,${1:VAR1},${2:VAR2},${3:LABEL})"
],
"description": "Переход, если VAR1 < VAR2"
},
"BEQ jump": {
"prefix": "beq",
"body": [
"(BEQ,${1:VAR1},${2:VAR2},${3:LABEL})"
],
"description": "Переход, если VAR1 = VAR2"
},
"BNE jump": {
"prefix": "bne",
"body": [
"(BNE,${1:VAR1},${2:VAR2},${3:LABEL})"
],
"description": "Переход, если VAR1 ≠ VAR2"
},
"BGE jump": {
"prefix": "bge",
"body": [
"(BGE,${1:VAR1},${2:VAR2},${3:LABEL})"
],
"description": "Переход, если VAR1 ≥ VAR2"
},
"BLE jump": {
"prefix": "ble",
"body": [
"(BLE,${1:VAR1},${2:VAR2},${3:LABEL})"
],
"description": "Переход, если VAR1 ≤ VAR2"
},
"G0 move": {
"prefix": "g0",
"body": [
"G0X0Y0Z0"
],
"description": "Линейное перемещение по плоскостям XYZ на ускоренной подаче"
},
"G1 move": {
"prefix": "g1",
"body": [
"G1 X${1:0.0} Y${2:0.0} Z${3:0.0} F${4:200}"
],
"description": "Линейное перемещение по плоскостям XYZ на рабочей подаче"
},
// thread
"G33 — постоянный шаг (фронтальная)": {
"prefix": "g33",
"body": [
"G33 Z${1:3} K${2:6}"
],
"description": "Фронтальная резьба с постоянным шагом"
},
"G33 — многозаходная резьба (2-й заход)": {
"prefix": "g33r",
"body": [
"G33 Z${1:3} K${2:6} R${3:120}"
],
"description": "Многозаходная резьба — второй заход"
},
"G33 — многозаходная резьба (3-й заход)": {
"prefix": "g33r3",
"body": [
"G33 Z${1:3} K${2:6} R${3:240}"
],
"description": "Многозаходная резьба — третий заход"
},
"G33 — переменный шаг (возрастающий)": {
"prefix": "g33i+",
"body": [
"G33 Z${1:3} K${2:6} I${3:1}"
],
"description": "Цилиндрическая резьба с возрастающим шагом"
},
"G33 — переменный шаг (убывающий)": {
"prefix": "g33i-",
"body": [
"G33 Z${1:3} K${2:6} I${3:-1}"
],
"description": "Цилиндрическая резьба с уменьшающимся шагом"
},
"G33 — коническая резьба": {
"prefix": "g33u",
"body": [
"G33 U${1:3} K${2:6}"
],
"description": "Коническая резьба по оси U"
},
"G33 — переменный шаг + отклонение": {
"prefix": "g33ir",
"body": [
"G33 Z${1:3} K${2:6} I${3:1} R${4:120}"
],
"description": "Многозаходная резьба с переменным шагом"
},
"G34 — постоянный шаг (фронтальная)": {
"prefix": "g34",
"body": [
"G34 Z${1:3} K${2:6}"
],
"description": "Фронтальная резьба с постоянным шагом"
},
"G34 — многозаходная резьба (2-й заход)": {
"prefix": "g34r",
"body": [
"G34 Z${1:3} K${2:6} R${3:120}"
],
"description": "Многозаходная резьба — второй заход"
},
"G34 — многозаходная резьба (3-й заход)": {
"prefix": "g34r3",
"body": [
"G34 Z${1:3} K${2:6} R${3:240}"
],
"description": "Многозаходная резьба — третий заход"
},
"G34 — переменный шаг (возрастающий)": {
"prefix": "g34i+",
"body": [
"G34 Z${1:3} K${2:6} I${3:1}"
],
"description": "Цилиндрическая резьба с возрастающим шагом"
},
"G34 — переменный шаг (убывающий)": {
"prefix": "g34i-",
"body": [
"G34 Z${1:3} K${2:6} I${3:-1}"
],
"description": "Цилиндрическая резьба с уменьшающимся шагом"
},
"G34 — коническая резьба": {
"prefix": "g34u",
"body": [
"G34 U${1:3} K${2:6}"
],
"description": "Коническая резьба по оси U"
},
"G34 — переменный шаг + отклонение": {
"prefix": "g34ir",
"body": [
"G34 Z${1:3} K${2:6} I${3:1} R${4:120}"
],
"description": "Многозаходная резьба с переменным шагом"
},
"G34 — с торможением (G09)": {
"prefix": "g34g09",
"body": [
"G34 Z${1:3} K${2:6} G09"
],
"description": "Резьба с торможением в конце"
},
"G17 — плоскость XY": {
"prefix": "g17",
"body": [
"G17"
],
"description": "Плоскость интерполяции XY"
},
"G18 — плоскость XZ": {
"prefix": "g18",
"body": [
"G18"
],
"description": "Плоскость интерполяции XZ"
},
"G19 — плоскость YZ": {
"prefix": "g19",
"body": [
"G19"
],
"description": "Плоскость интерполяции YZ"
},
"G83 — цикл с дроблением стружки": {
"prefix": "g83",
"body": ["G83 R${1:5} Z${2:-15} I${3:2} K${4:0.8} J${5:1.0}"],
"description": "Глубокое сверление с дроблением стружки"
},
"G83 — цикл без разгрузки (TMR)": {
"prefix": "g83tmr",
"body": ["G83 R${1:5} Z${2:-15} I${3:2} TMR=${4:2}"],
"description": "Глубокое сверление с выдержкой времени"
},
"G84 — резьба с датчиком": {
"prefix": "g84",
"body": ["G84 R${1:5} Z${2:-15} K${3:2}"],
"description": "Резьбонарезание с датчиком"
},
"G84 — резьба без датчика (с подачей)": {
"prefix": "g84f",
"body": ["G84 R${1:5} Z${2:-15} F${3:280}"],
"description": "Резьбонарезание без датчика, с подачей"
},
"G90 — абсолютная система": {
"prefix": "g90",
"body": ["G90"],
"description": "Программирование в абсолютной системе координат"
},
"G91 — приращения": {
"prefix": "g91",
"body": ["G91"],
"description": "Программирование по приращениям"
},
"G79 — относительно нуля станка": {
"prefix": "g79",
"body": ["G79 X${1:0} Z${2:0}"],
"description": "Программирование относительно нуля станка"
},
"CLS — вызов подпрограммы": {
"prefix": "cls",
"body": ["(CLS,${1:P800}/${2:MP2})"],
"description": "Вызов подпрограммы из памяти MPx"
},
"CLS — вызов без указания памяти": {
"prefix": "cls0",
"body": ["(CLS,${1:P800})"],
"description": "Вызов подпрограммы с памятью по умолчанию"
},
"BNC — безусловный переход": {
"prefix": "bnc",
"body": ["(BNC,${1:LABEL})"],
"description": "Безусловный переход к метке"
},
"BGT — если VAR1 > VAR2": {
"prefix": "bgt",
"body": ["(BGT,${1:VAR1},${2:VAR2},${3:LABEL})"],
"description": "Переход, если VAR1 больше VAR2"
},
"BLT — если VAR1 < VAR2": {
"prefix": "blt",
"body": ["(BLT,${1:VAR1},${2:VAR2},${3:LABEL})"],
"description": "Переход, если VAR1 меньше VAR2"
},
"BEQ — если VAR1 = VAR2": {
"prefix": "beq",
"body": ["(BEQ,${1:VAR1},${2:VAR2},${3:LABEL})"],
"description": "Переход, если VAR1 равен VAR2"
},
"BNE — если VAR1 ≠ VAR2": {
"prefix": "bne",
"body": ["(BNE,${1:VAR1},${2:VAR2},${3:LABEL})"],
"description": "Переход, если VAR1 не равен VAR2"
},
"BGE — если VAR1 ≥ VAR2": {
"prefix": "bge",
"body": ["(BGE,${1:VAR1},${2:VAR2},${3:LABEL})"],
"description": "Переход, если VAR1 ≥ VAR2"
},
"BLE — если VAR1 ≤ VAR2": {
"prefix": "ble",
"body": ["(BLE,${1:VAR1},${2:VAR2},${3:LABEL})"],
"description": "Переход, если VAR1 ≤ VAR2"
},
"DIS — описание кадра": {
"prefix": "dis",
"body": ["(DIS,\"${1:Описание}\")"],
"description": "Комментарий или описание кадра"
} }
}
}

View File

@@ -48,9 +48,74 @@
}, },
{ {
"include": "#comments" "include": "#comments"
} },
{ "include": "#mathFunctions" },
{ "include": "#branchCodes" }
], ],
"repository": { "repository": {
"branchCodes": {
"patterns": [
{
"begin": "\\((BNC|BGT|BLT|BEQ|BNE|BGE|BLE)",
"beginCaptures": {
"1": { "name": "keyword.control.branch.bsnc" }
},
"end": "\\)",
"endCaptures": {
"0": { "name": "punctuation.section.parens.end.bsnc" }
},
"patterns": [
{ "match": ",", "name": "punctuation.separator.comma.bsnc" },
{ "match": "(E\\d+)", "name": "variable.other.e-variable.bsnc" },
{ "match": "[A-Z_][A-Z0-9_]*", "name": "entity.name.label.bsnc" },
{ "match": "[-+]?\\d+(?:\\.\\d+)?", "name": "constant.numeric.branch-arg.bsnc" }
]
}
]
},
"mathFunctions": {
"patterns": [
{
"begin": "\\b(SIN|COS|TAN|ARS|ARC|ART|SQR|ABS|INT|NEG|MOD|FEL)\\s*\\(",
"beginCaptures": {
"1": {
"name": "support.function.math.bsnc"
},
"0": {
"name": "punctuation.section.parens.begin.bsnc"
}
},
"end": "\\)",
"endCaptures": {
"0": {
"name": "punctuation.section.parens.end.bsnc"
}
},
"patterns": [
{
"match": ",",
"name": "punctuation.separator.comma.bsnc"
},
{
"match": "/",
"name": "keyword.operator.divide.bsnc"
},
{
"match": "(E\\d+)",
"name": "variable.other.e-variable.bsnc"
},
{
"match": "[-+]?\\d+(?:\\.\\d+)?",
"name": "constant.numeric.math-arg.bsnc"
},
{
"match": "[A-Z]",
"name": "variable.parameter.math-symbol.bsnc"
}
]
}
]
},
"lineComments": { "lineComments": {
"patterns": [ "patterns": [
{ {