merged main

This commit is contained in:
dutchie031
2026-04-07 10:56:48 +02:00
7 changed files with 98 additions and 18 deletions
@@ -1,14 +0,0 @@
.vscode/**
.vscode-test/**
out/**
node_modules/**
src/**
.gitignore
.yarnrc
esbuild.js
vsc-extension-quickstart.md
**/tsconfig.json
**/eslint.config.mjs
**/*.map
**/*.ts
**/.vscode-test.*
+21
View File
@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2026 dutchie031
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.
+55 -1
View File
@@ -5,6 +5,60 @@ Direct DCS API checking and a Transpiler that can help keep huge complex scripts
## Features ## Features
- DCS API checking in VSCode
Automatic checking of your code for DCS API errors.
- Transpiler
A tool that can help you write more complex scripts in a more simple and overseeable way.
Transpiles multiple files into a single file that can be used in DCS, using standard Lua syntax and features.
## How To use
### Intellisense and API checking in VSCode.
1. Install the extension in VSCode.
2. Open your workspace with your DCS mission scripts.
3. Enable: `> Dutchies Scripting Tools: Enable`
### Transpiler
1. Make sure you have the code in `./src` folder by default, or change the `src` folder in the settings.
`settings.json`:
```json
{
"dutchiesScriptingTools.src": "./src"
}
```
2. Write your code in the `src` folder, with possible subfolders. You can use standard Lua syntax and features, and the transpiler will handle the rest.
NOTE:
There's no implicit entry point. The whole code will be put into a single Lua file. <br>
The order of the files depends on dependencies via the `require` function. So if you have a file `main.lua` that requires `utils.lua`, the transpiler will first transpile `utils.lua` and then `main.lua`. <br>
This means that if you have code that executes on load, it will be executed. <br>
Best practice is to have 1 file that executes and the rest be modules. <br>
Eg. `main.lua`:
```lua
local utils = require("utils")
utils.printHelloWorld()
```
And `utils.lua`:
```lua
local utils = {}
utils.printHelloWorld = function()
env.info("Hello World!")
end
return utils
```
## Possible Future Features
- DCS Snippets
A collection of useful code snippets for DCS scripting in VSCode.
## Requirements ## Requirements
`sumenko.lua` : The VSCode Lua Language Server `sumenko.lua` : The VSCode Lua Language Server
@@ -20,5 +74,5 @@ Direct DCS API checking and a Transpiler that can help keep huge complex scripts
### 0.0.1 ### 0.0.1
Initial. Initial.
Still very much in Test/Development Still very much in Test/Development. Use at your own risk.
Binary file not shown.

After

Width:  |  Height:  |  Size: 234 KiB

+9 -3
View File
@@ -7,6 +7,11 @@
"name": "dutchie031", "name": "dutchie031",
"email": "54616262+dutchie031@users.noreply.github.com" "email": "54616262+dutchie031@users.noreply.github.com"
}, },
"icon": "dutchie2.png",
"galleryBanner": {
"color": "#222430",
"theme": "dark"
},
"publisher": "dutchie031", "publisher": "dutchie031",
"license": "MIT", "license": "MIT",
"engines": { "engines": {
@@ -96,14 +101,15 @@
"sumneko.lua" "sumneko.lua"
], ],
"files": [ "files": [
"dist", "dist/**",
"README.md", "README.md",
"lua-addons/**/*", "lua-addons/**/*",
"syntaxes/**/*" "dutchie2.png",
"LICENSE"
], ],
"dependencies": {}, "dependencies": {},
"scripts": { "scripts": {
"vscode:prepublish": "npm run build -w compiler && npm run package", "vscode:prepublish": "npm run package",
"compile": "npm run check-types && npm run lint && node esbuild.js", "compile": "npm run check-types && npm run lint && node esbuild.js",
"watch": "npm-run-all -p watch:*", "watch": "npm-run-all -p watch:*",
"watch:esbuild": "node esbuild.js --watch", "watch:esbuild": "node esbuild.js --watch",
+8
View File
@@ -0,0 +1,8 @@
#!/bin/bash
set -e
npm install
cd dutchies-dcs-scripting-tools
npm install
npm run package
npx @vscode/vsce package --no-dependencies
+5
View File
@@ -912,6 +912,7 @@
"integrity": "sha512-BtE0k6cjwjLZoZixN0t5AKP0kSzlGu7FctRXYuPAm//aaiZhmfq1JwdYpYr1brzEspYyFeF+8XF5j2VK6oalrA==", "integrity": "sha512-BtE0k6cjwjLZoZixN0t5AKP0kSzlGu7FctRXYuPAm//aaiZhmfq1JwdYpYr1brzEspYyFeF+8XF5j2VK6oalrA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@typescript-eslint/scope-manager": "8.54.0", "@typescript-eslint/scope-manager": "8.54.0",
"@typescript-eslint/types": "8.54.0", "@typescript-eslint/types": "8.54.0",
@@ -1144,6 +1145,7 @@
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"bin": { "bin": {
"acorn": "bin/acorn" "acorn": "bin/acorn"
}, },
@@ -2080,6 +2082,7 @@
"integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/eslint-utils": "^4.8.0",
"@eslint-community/regexpp": "^4.12.1", "@eslint-community/regexpp": "^4.12.1",
@@ -5169,6 +5172,7 @@
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"engines": { "engines": {
"node": ">=12" "node": ">=12"
}, },
@@ -5299,6 +5303,7 @@
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
"dev": true, "dev": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"peer": true,
"bin": { "bin": {
"tsc": "bin/tsc", "tsc": "bin/tsc",
"tsserver": "bin/tsserver" "tsserver": "bin/tsserver"