Добавлена поддержка квс
This commit is contained in:
parent
db22e2f015
commit
34c2229b8a
20
LICENSE
20
LICENSE
|
|
@ -1,21 +1,9 @@
|
|||
MIT License
|
||||
Лицензия MIT
|
||||
|
||||
Copyright (c) 2024 haxo.games
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
Настоящим предоставляется разрешение безвозмездно любому лицу, получающему копию данного программного обеспечения и сопутствующей документации (в дальнейшем — «Программное обеспечение»), использовать Программное обеспечение без ограничений, включая без ограничений права использовать, копировать, изменять, объединять, публиковать, распространять, сублицензировать и/или продавать копии Программного обеспечения, а также разрешать лицам, которым предоставляется Программное обеспечение, делать это, при соблюдении следующих условий:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
Вышеуказанное уведомление об авторских правах и данное уведомление о разрешении должны быть включены во все копии или значительные части Программного обеспечения.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ, СООТВЕТСТВИЯ ПО КОНКРЕТНОМУ НАЗНАЧЕНИЮ И ОТСУТСТВИЯ НАРУШЕНИЙ ПРАВ. НИ В КАКОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ПО ИСКАМ О ВОЗМЕЩЕНИИ УЩЕРБА, ПО ТЕРБЯМ ИЛИ ПО ДРУГИМ ТРЕБОВАНИЯМ, ВОЗНИКАЮЩИМ ИЗ-ЗА ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИЛИ ИНЫХ ДЕЙСТВИЙ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.
|
||||
108
README.md
108
README.md
|
|
@ -1,26 +1,37 @@
|
|||
## Overview 🛠️
|
||||
## Обзор 🛠️
|
||||
|
||||
This Visual Studio Code extension provides comprehensive syntax highlighting for x86, x64 and ARM assembly language using Intel syntax. It's designed to improve readability and understanding of assembly code, including compiler-generated output.
|
||||
Это расширение для Visual Studio Code обеспечивает полноценную подсветку синтаксиса для ассемблера x86, x64 и ARM с использованием синтаксиса Intel. Оно создано для улучшения читаемости и понимания ассемблерного кода, включая вывод компиляторов.
|
||||
|
||||
## Features ✨
|
||||
## Возможности ✨
|
||||
|
||||
- Syntax highlighting for x86, x64 and ARM assembly instructions 💻
|
||||
- Support for Intel syntax 🧠
|
||||
- Highlighting of registers, memory operands, and numeric constants 🔍
|
||||
- Recognition of common assembler directives ⚙️
|
||||
- Proper highlighting of labels and function names 🏷️
|
||||
- Support for compiler-generated assembly features (e.g., CFI directives) 🛡️
|
||||
- Подсветка синтаксиса инструкций ассемблера x86, x64 и ARM 💻
|
||||
- Поддержка синтаксиса Intel 🧠
|
||||
- Подсветка регистров, операндов памяти и числовых констант 🔍
|
||||
- Распознавание стандартных директив ассемблера ⚙️
|
||||
- Правильная подсветка меток и имён функций 🏷️
|
||||
- Поддержка возможностей ассемблерного вывода компиляторов (например, CFI директивы) 🛡️
|
||||
- **Поддержка языка КВС** — ассемблера с русским синтаксисом для x86-64 🇷🇺
|
||||
|
||||
## Installation 🚀
|
||||
## Установка 🚀
|
||||
|
||||
1. Open Visual Studio Code
|
||||
2. Go to the Extensions view (Ctrl+Shift+X or Cmd+Shift+X on macOS)
|
||||
3. Search for "Universal Assembly Syntax Highlighting"
|
||||
4. Click Install
|
||||
### Способ 1: Установка из маркета расширений
|
||||
|
||||
## Usage 💡
|
||||
1. Откройте Visual Studio Code
|
||||
2. Перейдите в раздел расширений (Ctrl+Shift+X или Cmd+Shift+X на macOS)
|
||||
3. Найдите "Universal Assembly Syntax Highlighting"
|
||||
4. Нажмите Установить
|
||||
|
||||
Once installed, the extension will automatically provide syntax highlighting for files with the following extensions:
|
||||
### Способ 2: Ручная установка
|
||||
|
||||
1. Склонируйте или скачайте репозиторий расширения
|
||||
2. Откройте командную палитру (Ctrl+Shift+P)
|
||||
3. Выполните команду `Developer: Open Extensions Folder`
|
||||
4. Скопируйте папку с расширением в открывшуюся директорию
|
||||
5. Перезапустите VS Code
|
||||
|
||||
## Использование 💡
|
||||
|
||||
После установки расширение будет автоматически подсвечивать синтаксис файлов со следующими расширениями:
|
||||
|
||||
- `.asm`
|
||||
- `.s`
|
||||
|
|
@ -28,32 +39,37 @@ Once installed, the extension will automatically provide syntax highlighting for
|
|||
- `.nasm`
|
||||
- `.asmx`
|
||||
- `.inc`
|
||||
- `.квс` — файлы ассемблера КВС
|
||||
|
||||
If you're working with a file that has a different extension but contains x86/x64 assembly code, you can manually set the language mode:
|
||||
Если вы работаете с файлом, имеющим другое расширение, но содержащим код ассемблера x86/x64, вы можете вручную установить режим языка:
|
||||
|
||||
1. Click on the language indicator in the bottom-right corner of VS Code
|
||||
2. Select "x86/x64 Assembly" from the list of languages
|
||||
1. Нажмите на индикатор языка в правом нижнем углу VS Code
|
||||
2. Выберите "x86/x64 Assembly" из списка языков
|
||||
|
||||
## Highlighted Elements 🎨
|
||||
## Подсвечиваемые элементы 🎨
|
||||
|
||||
This extension provides syntax highlighting for:
|
||||
Это расширение обеспечивает подсветку синтаксиса для:
|
||||
|
||||
- Instructions (e.g., `mov`, `push`, `call`) 📝
|
||||
- Registers (e.g., `eax`, `rbp`, `r15`) 📟
|
||||
- Memory operands (e.g., `DWORD PTR`, `QWORD PTR`) 📋
|
||||
- Numeric constants (decimal and hexadecimal) 🔢
|
||||
- Labels and function names 🏷️
|
||||
- Assembler directives (e.g., `.section`, `.globl`) 🧭
|
||||
- CFI directives (e.g., `.cfi_startproc`, `.cfi_endproc`) 🛡️
|
||||
- Comments (lines starting with `;`) 💬
|
||||
- Инструкций (например, `mov`, `push`, `call`) 📝
|
||||
- Регистров (например, `eax`, `rbp`, `r15`) 📟
|
||||
- Операндов памяти (например, `DWORD PTR`, `QWORD PTR`) 📋
|
||||
- Числовых констант (десятичных и шестнадцатеричных) 🔢
|
||||
- Меток и имён функций 🏷️
|
||||
- Директив ассемблера (например, `.section`, `.globl`) 🧭
|
||||
- CFI директив (например, `.cfi_startproc`, `.cfi_endproc`) 🛡️
|
||||
- Комментариев (строки, начинающиеся с `;`) 💬
|
||||
- **Русских инструкций КВС** (например, `переместить_имм`, `вызов_системы`) 🇷🇺
|
||||
- **Русских регистров КВС** (например, `раикс`, `рдиай`, `ал`) 🇷🇺
|
||||
- **Русских секций КВС** (`.текст`, `.данные`, `.бнд`) 🇷🇺
|
||||
- **Русских директив КВС** (`.глобал`, `.строка`, `.байт`) 🇷🇺
|
||||
|
||||
## Customization 🎨
|
||||
## Настройка 🎨
|
||||
|
||||
### Syntax Highlighting Colors
|
||||
### Цвета подсветки синтаксиса
|
||||
|
||||
You can customize the colors used for syntax highlighting by modifying your VS Code color theme. Add or modify entries in your `settings.json` file under `"editor.tokenColorCustomizations"`.
|
||||
Вы можете настроить цвета подсветки синтаксиса, изменив цветовую тему VS Code. Добавьте или измените записи в вашем файле `settings.json` в разделе `"editor.tokenColorCustomizations"`.
|
||||
|
||||
For example:
|
||||
Например:
|
||||
|
||||
```json
|
||||
"editor.tokenColorCustomizations": {
|
||||
|
|
@ -74,9 +90,9 @@ For example:
|
|||
}
|
||||
```
|
||||
|
||||
### Comment Characters
|
||||
### Символы комментариев
|
||||
|
||||
You can configure which characters are used for comments to match your assembler. Add these settings to your VS Code `settings.json`:
|
||||
Вы можете настроить символы для комментариев в соответствии с вашим ассемблером. Добавьте эти настройки в ваш `settings.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
|
|
@ -85,22 +101,22 @@ You can configure which characters are used for comments to match your assembler
|
|||
}
|
||||
```
|
||||
|
||||
**Common configurations:**
|
||||
**Распространённые конфигурации:**
|
||||
|
||||
- **GNU Assembler (as)**: Use `#` for line comments
|
||||
- **NASM/MASM**: Use `;` for line comments (default)
|
||||
- **Custom assemblers**: Set to any character or string you prefer
|
||||
- **GNU Assembler (as)**: Используйте `#` для однострочных комментариев
|
||||
- **NASM/MASM**: Используйте `;` для однострочных комментариев (по умолчанию)
|
||||
- **Ассемблер КВС**: Используйте `;` для однострочных комментариев
|
||||
|
||||
The extension will automatically update comment behavior when you change these settings.
|
||||
Расширение автоматически обновит поведение комментариев при изменении этих настроек.
|
||||
|
||||
## Contributing 🤝
|
||||
## Вклад в проект 🤝
|
||||
|
||||
If you find any issues or have suggestions for improvements, please open an issue or submit a pull request on the GitHub repository.
|
||||
Если вы нашли ошибки или у вас есть предложения по улучшению, пожалуйста, создайте обращение или отправьте запрос на включение изменений в GitHub репозитории.
|
||||
|
||||
## License 📄
|
||||
## Лицензия 📄
|
||||
|
||||
This extension is released under the MIT License. See the LICENSE file for details.
|
||||
Это расширение распространяется под лицензией MIT. Подробности см. в файле LICENSE.
|
||||
|
||||
## Acknowledgements 🙌
|
||||
## Благодарности 🙌
|
||||
|
||||
Thanks to all contributors and users who have provided feedback and suggestions to improve this extension.
|
||||
Спасибо всем участникам и пользователям, которые предоставили отзывы и предложения по улучшению этого расширения.
|
||||
|
|
@ -48,7 +48,8 @@
|
|||
"x86/x64",
|
||||
"x86-x64",
|
||||
"arm",
|
||||
"x86asm"
|
||||
"x86asm",
|
||||
"квс"
|
||||
],
|
||||
"extensions": [
|
||||
".asm",
|
||||
|
|
@ -56,7 +57,8 @@
|
|||
".S",
|
||||
".nasm",
|
||||
".asmx",
|
||||
".inc"
|
||||
".inc",
|
||||
".квс"
|
||||
],
|
||||
"configuration": "./language-configuration.json"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -158,6 +158,10 @@
|
|||
},
|
||||
"sections": {
|
||||
"patterns": [
|
||||
{
|
||||
"name": "keyword.control.section.квс",
|
||||
"match": "\\.(текст|данные|бнд)\\b"
|
||||
},
|
||||
{
|
||||
"name": "keyword.control.section.x86asm",
|
||||
"match": "\\.(section .(text|data|bss|tbss|tcomm))\\b"
|
||||
|
|
@ -170,6 +174,10 @@
|
|||
},
|
||||
"instructions": {
|
||||
"patterns": [
|
||||
{
|
||||
"name": "keyword.control.instruction.квс",
|
||||
"match": "\\b(переместить_имм|переместить|загрузить|сохранить|загрузить_байт_из_памяти|сохранить_байт|загрузить_адрес|переместить_с_нулями|переместить_со_знаком|загрузить_байт|сравнить_с|сравнить|сравнить_байт|проверить|прибавить|прибавить_непосредственно|прибавить_байт|вычесть|вычесть_непосредственно|вычесть_байт|увеличить|уменьшить|умножить|умножить_знаковое|разделить|разделить_знаковое|и|или|исключающее_или|инвертировать|отрицать|переход|короткий_переход|переход_если_равно|переход_если_неравно|переход_если_меньше|переход_если_больше|переход_если_меньше_или_равно|переход_если_больше_или_равно|переход_если_перенос|переход_если_нет_переноса|переход_если_ноль|переход_если_не_ноль|короткий_переход_если_равно|короткий_переход_если_неравно|короткий_переход_если_меньше|короткий_переход_если_больше|короткий_переход_если_меньше_или_равно|короткий_переход_если_больше_или_равно|короткий_переход_если_перенос|короткий_переход_если_нет_переноса|короткий_переход_если_ноль|короткий_переход_если_не_ноль|вызвать|вернуться|втолкнуть|вытолкнуть|втолкнуть_непосредственно|втолкнуть_байт|сдвиг_влево|сдвиг_вправо|сдвиг_арифметический_вправо|вращать_влево|вращать_вправо|цикл|обменять|вызов_системы|прервать|войти_в_систему|остановить|нет_операции|отладка|переместить_байт|переместить_слово|сравнить_байты|сканировать_байт|установить_перенос|сбросить_перенос|установить_направление|сбросить_направление|втолкнуть_флаги|вытолкнуть_флаги|ввод_байта|вывод_байта|идентифицировать_процессор|прочитать_счётчик)\\b"
|
||||
},
|
||||
{
|
||||
"name": "keyword.control.instruction.x86asm",
|
||||
"match": "\\b(?i)(mov|push|pop|call|ret|leave|jmp|je|jne|jz|jnz|jbe|jae|ja|jb|jge|jg|jl|jle|jo|jno|js|jns|jc|jnc|jp|jnp|add|sub|mul|div|imul|idiv|and|or|xor|xchg|lea|cmp|test|inc|dec|shl|shr|sal|sar|rol|ror|rcl|rcr|movzx|movsx|movsxd|nop|enter|int|syscall|sysret|hlt|in|out|rdmsr|wrmsr|cbw|cwd|cdq|cqo|rep|repe|repz|repne|repnz|loop|loope|loopz|loopne|loopnz|clc|stc|cli|sti|cld|std|lahf|sahf|pushf|popf|pusha|popa|pushad|popad)\\b"
|
||||
|
|
@ -186,6 +194,10 @@
|
|||
},
|
||||
"registers": {
|
||||
"patterns": [
|
||||
{
|
||||
"name": "variable.language.register.квс",
|
||||
"match": "\\b(раикс|рсикс|рдикс|рбикс|рсипи|рбипи|рсиай|рдиай|р8|р9|р10|р11|р12|р13|р14|р15|еаикс|есикс|едикс|ебикс|есипи|ебипи|есиай|едиай|р8д|р9д|р10д|р11д|р12д|р13д|р14д|р15д|аикс|сикс|дикс|бикс|эсп|бипи|эс|ди|р8в|р9в|р10в|р11в|р12в|р13в|р14в|р15в|ал|кл|дл|бл|спл|бпл|сил|дил|р8б|р9б|р10б|р11б|р12б|р13б|р14б|р15б|аш|чш|дш|бш)\\b"
|
||||
},
|
||||
{
|
||||
"name": "variable.language.register.simd.x86asm",
|
||||
"match": "\\b(?i)(xmm(?:[0-9]|1[0-5])|ymm(?:[0-9]|[12][0-9]|3[01])|zmm(?:[0-9]|[12][0-9]|3[01]))\\b"
|
||||
|
|
|
|||
Loading…
Reference in a new issue