IncludeCPP 3.7.6__tar.gz → 3.7.13__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {includecpp-3.7.6 → includecpp-3.7.13}/IncludeCPP.egg-info/PKG-INFO +1 -1
- {includecpp-3.7.6 → includecpp-3.7.13}/IncludeCPP.egg-info/SOURCES.txt +4 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/PKG-INFO +1 -1
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/__init__.py +1 -1
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/cli/commands.py +137 -66
- includecpp-3.7.13/includecpp/vscode/cssl/images/cssl.png +0 -0
- includecpp-3.7.13/includecpp/vscode/cssl/images/cssl_pl.png +0 -0
- includecpp-3.7.13/includecpp/vscode/cssl/package.json +88 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/vscode/cssl/syntaxes/cssl.tmLanguage.json +128 -29
- {includecpp-3.7.6 → includecpp-3.7.13}/pyproject.toml +3 -2
- includecpp-3.7.6/includecpp/vscode/cssl/package.json +0 -50
- {includecpp-3.7.6 → includecpp-3.7.13}/IncludeCPP.egg-info/dependency_links.txt +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/IncludeCPP.egg-info/entry_points.txt +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/IncludeCPP.egg-info/requires.txt +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/IncludeCPP.egg-info/top_level.txt +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/LICENSE +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/MANIFEST.in +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/README.md +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/__init__.pyi +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/__main__.py +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/cli/__init__.py +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/cli/config_parser.py +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/core/__init__.py +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/core/ai_integration.py +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/core/build_manager.py +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/core/cpp_api.py +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/core/cpp_api.pyi +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/core/cppy_converter.py +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/core/cssl/CSSL_DOCUMENTATION.md +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/core/cssl/__init__.py +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/core/cssl/cssl_builtins.py +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/core/cssl/cssl_builtins.pyi +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/core/cssl/cssl_events.py +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/core/cssl/cssl_modules.py +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/core/cssl/cssl_parser.py +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/core/cssl/cssl_runtime.py +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/core/cssl/cssl_syntax.py +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/core/cssl/cssl_types.py +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/core/cssl_bridge.py +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/core/cssl_bridge.pyi +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/core/error_catalog.py +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/core/error_formatter.py +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/core/exceptions.py +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/core/path_discovery.py +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/core/project_ui.py +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/core/settings_ui.py +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/generator/__init__.py +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/generator/parser.cpp +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/generator/parser.h +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/generator/type_resolver.cpp +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/generator/type_resolver.h +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/py.typed +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/templates/cpp.proj.template +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/vscode/__init__.py +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/vscode/cssl/__init__.py +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/vscode/cssl/language-configuration.json +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/includecpp/vscode/cssl/snippets/cssl.snippets.json +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/requirements.txt +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/setup.cfg +0 -0
- {includecpp-3.7.6 → includecpp-3.7.13}/setup.py +0 -0
|
@@ -45,6 +45,8 @@ setup.py
|
|
|
45
45
|
./includecpp/vscode/cssl/__init__.py
|
|
46
46
|
./includecpp/vscode/cssl/language-configuration.json
|
|
47
47
|
./includecpp/vscode/cssl/package.json
|
|
48
|
+
./includecpp/vscode/cssl/images/cssl.png
|
|
49
|
+
./includecpp/vscode/cssl/images/cssl_pl.png
|
|
48
50
|
./includecpp/vscode/cssl/snippets/cssl.snippets.json
|
|
49
51
|
./includecpp/vscode/cssl/syntaxes/cssl.tmLanguage.json
|
|
50
52
|
IncludeCPP.egg-info/PKG-INFO
|
|
@@ -94,5 +96,7 @@ includecpp/vscode/__init__.py
|
|
|
94
96
|
includecpp/vscode/cssl/__init__.py
|
|
95
97
|
includecpp/vscode/cssl/language-configuration.json
|
|
96
98
|
includecpp/vscode/cssl/package.json
|
|
99
|
+
includecpp/vscode/cssl/images/cssl.png
|
|
100
|
+
includecpp/vscode/cssl/images/cssl_pl.png
|
|
97
101
|
includecpp/vscode/cssl/snippets/cssl.snippets.json
|
|
98
102
|
includecpp/vscode/cssl/syntaxes/cssl.tmLanguage.json
|
|
@@ -1193,7 +1193,7 @@ def build(ctx, clean, keep, verbose, no_incremental, incremental, parallel, jobs
|
|
|
1193
1193
|
@cli.command()
|
|
1194
1194
|
@click.argument('module_name')
|
|
1195
1195
|
def add(module_name):
|
|
1196
|
-
"""Create a new module template."""
|
|
1196
|
+
"""Create a new module template with sample C++ code."""
|
|
1197
1197
|
plugins_dir = Path("plugins")
|
|
1198
1198
|
if not plugins_dir.exists():
|
|
1199
1199
|
click.echo("Error: plugins/ directory not found")
|
|
@@ -1204,6 +1204,7 @@ def add(module_name):
|
|
|
1204
1204
|
click.echo(f"Module {module_name} already exists")
|
|
1205
1205
|
return
|
|
1206
1206
|
|
|
1207
|
+
# Create .cp config file
|
|
1207
1208
|
template = f"""SOURCE(include/{module_name}.cpp) {module_name}
|
|
1208
1209
|
|
|
1209
1210
|
PUBLIC(
|
|
@@ -1215,7 +1216,41 @@ PUBLIC(
|
|
|
1215
1216
|
f.write(template)
|
|
1216
1217
|
|
|
1217
1218
|
click.echo(f"Created {cp_file}")
|
|
1218
|
-
|
|
1219
|
+
|
|
1220
|
+
# Create include/ directory if it doesn't exist
|
|
1221
|
+
include_dir = Path("include")
|
|
1222
|
+
include_dir.mkdir(exist_ok=True)
|
|
1223
|
+
|
|
1224
|
+
# Create .cpp file with sample code
|
|
1225
|
+
cpp_file = include_dir / f"{module_name}.cpp"
|
|
1226
|
+
if not cpp_file.exists():
|
|
1227
|
+
cpp_template = f"""#include <string>
|
|
1228
|
+
#include <vector>
|
|
1229
|
+
|
|
1230
|
+
namespace includecpp {{
|
|
1231
|
+
|
|
1232
|
+
// Example function - returns a greeting
|
|
1233
|
+
std::string example_function(const std::string& name) {{
|
|
1234
|
+
return "Hello, " + name + "!";
|
|
1235
|
+
}}
|
|
1236
|
+
|
|
1237
|
+
// Add more functions here...
|
|
1238
|
+
// int add(int a, int b) {{ return a + b; }}
|
|
1239
|
+
// std::vector<int> range(int n) {{ ... }}
|
|
1240
|
+
|
|
1241
|
+
}} // namespace includecpp
|
|
1242
|
+
"""
|
|
1243
|
+
with open(cpp_file, 'w', encoding='utf-8') as f:
|
|
1244
|
+
f.write(cpp_template)
|
|
1245
|
+
|
|
1246
|
+
click.echo(f"Created {cpp_file}")
|
|
1247
|
+
else:
|
|
1248
|
+
click.echo(f"Note: {cpp_file} already exists, skipped")
|
|
1249
|
+
|
|
1250
|
+
click.echo(f"\nNext steps:")
|
|
1251
|
+
click.echo(f" 1. Edit include/{module_name}.cpp to add your functions")
|
|
1252
|
+
click.echo(f" 2. Update plugins/{module_name}.cp to expose functions")
|
|
1253
|
+
click.echo(f" 3. Run: includecpp rebuild")
|
|
1219
1254
|
|
|
1220
1255
|
@cli.command('list')
|
|
1221
1256
|
def list_modules():
|
|
@@ -7823,26 +7858,46 @@ def cssl_vscode():
|
|
|
7823
7858
|
click.secho("CSSL extension files not found in package.", fg='red')
|
|
7824
7859
|
return
|
|
7825
7860
|
|
|
7826
|
-
#
|
|
7827
|
-
|
|
7861
|
+
# Get version from package.json
|
|
7862
|
+
pkg_json = source_ext_dir / 'package.json'
|
|
7863
|
+
current_version = "1.1.0"
|
|
7864
|
+
if pkg_json.exists():
|
|
7865
|
+
try:
|
|
7866
|
+
pkg_data = json.loads(pkg_json.read_text(encoding='utf-8'))
|
|
7867
|
+
current_version = pkg_data.get('version', '1.1.0')
|
|
7868
|
+
except:
|
|
7869
|
+
pass
|
|
7870
|
+
|
|
7871
|
+
target_dir = vscode_ext_dir / f'includecpp.cssl-{current_version}'
|
|
7828
7872
|
|
|
7829
7873
|
try:
|
|
7874
|
+
# Check for existing installations
|
|
7875
|
+
existing_version = None
|
|
7876
|
+
for existing in vscode_ext_dir.glob('includecpp.cssl-*'):
|
|
7877
|
+
existing_version = existing.name.split('-')[-1]
|
|
7878
|
+
if existing_version != current_version:
|
|
7879
|
+
click.echo(f"Removing old version: {existing_version}")
|
|
7880
|
+
shutil.rmtree(existing)
|
|
7881
|
+
|
|
7830
7882
|
if target_dir.exists():
|
|
7831
7883
|
shutil.rmtree(target_dir)
|
|
7832
7884
|
|
|
7833
7885
|
shutil.copytree(source_ext_dir, target_dir)
|
|
7834
7886
|
|
|
7835
|
-
|
|
7887
|
+
if existing_version and existing_version != current_version:
|
|
7888
|
+
click.secho(f"CSSL extension updated: v{existing_version} -> v{current_version}", fg='green', bold=True)
|
|
7889
|
+
else:
|
|
7890
|
+
click.secho(f"CSSL VSCode extension installed! (v{current_version})", fg='green', bold=True)
|
|
7836
7891
|
click.echo()
|
|
7837
7892
|
click.echo(f"Installed to: {target_dir}")
|
|
7838
7893
|
click.echo()
|
|
7839
7894
|
click.echo("Features:")
|
|
7840
7895
|
click.echo(" - Syntax highlighting for .cssl, .cssl-pl, .cssl-mod files")
|
|
7841
|
-
click.echo(" -
|
|
7842
|
-
click.echo(" -
|
|
7896
|
+
click.echo(" - OOP support: class, constructor, this->member")
|
|
7897
|
+
click.echo(" - Injection operators: <== (brute), <<== (infuse)")
|
|
7898
|
+
click.echo(" - Type highlighting: int, string, stack<T>, instance<>")
|
|
7843
7899
|
click.echo(" - Global references: @Name, r@Name, s@Name")
|
|
7844
7900
|
click.echo(" - Shared objects: $Name")
|
|
7845
|
-
click.echo(" - Filter helpers: string::contains, json::key, etc.")
|
|
7846
7901
|
click.echo()
|
|
7847
7902
|
click.secho("Restart VSCode to activate the extension.", fg='yellow')
|
|
7848
7903
|
|
|
@@ -7866,35 +7921,28 @@ cli.add_command(cssl)
|
|
|
7866
7921
|
def vscode(force, stubs_only):
|
|
7867
7922
|
"""Initialize or update VSCode configuration for IncludeCPP/CSSL.
|
|
7868
7923
|
|
|
7869
|
-
|
|
7870
|
-
- CSSL language support (syntax highlighting, snippets)
|
|
7871
|
-
- Type stubs for builtins (.pyi files)
|
|
7872
|
-
- Auto-generated stubs for your plugins and modules
|
|
7924
|
+
Installs CSSL extension globally and sets up project stubs.
|
|
7873
7925
|
|
|
7874
7926
|
\b
|
|
7875
7927
|
Usage:
|
|
7876
|
-
includecpp vscode #
|
|
7877
|
-
includecpp vscode --force # Force
|
|
7928
|
+
includecpp vscode # Install/update extension + stubs
|
|
7929
|
+
includecpp vscode --force # Force reinstall extension
|
|
7878
7930
|
includecpp vscode --stubs-only # Only update stubs
|
|
7879
7931
|
|
|
7880
7932
|
\b
|
|
7881
|
-
What it
|
|
7882
|
-
.vscode/
|
|
7883
|
-
|
|
7884
|
-
|
|
7885
|
-
stubs/ - Type stubs for IDE support
|
|
7886
|
-
cssl_builtins.pyi - CSSL builtin functions
|
|
7887
|
-
plugins/ - Stubs for your .cp plugins
|
|
7888
|
-
modules/ - Stubs for your modules
|
|
7933
|
+
What it does:
|
|
7934
|
+
1. Installs CSSL extension globally (~/.vscode/extensions/)
|
|
7935
|
+
2. Creates .vscode/settings.json with file associations
|
|
7936
|
+
3. Creates .vscode/stubs/ with type hints for IDE support
|
|
7889
7937
|
"""
|
|
7890
7938
|
from pathlib import Path as PathLib
|
|
7939
|
+
import os
|
|
7891
7940
|
|
|
7892
7941
|
cwd = PathLib.cwd()
|
|
7893
7942
|
vscode_dir = cwd / '.vscode'
|
|
7894
7943
|
stubs_dir = vscode_dir / 'stubs'
|
|
7895
7944
|
plugins_stubs_dir = stubs_dir / 'plugins'
|
|
7896
7945
|
modules_stubs_dir = stubs_dir / 'modules'
|
|
7897
|
-
cssl_ext_dir = vscode_dir / 'cssl'
|
|
7898
7946
|
|
|
7899
7947
|
# Create directories
|
|
7900
7948
|
vscode_dir.mkdir(exist_ok=True)
|
|
@@ -7910,56 +7958,79 @@ def vscode(force, stubs_only):
|
|
|
7910
7958
|
updated_count = 0
|
|
7911
7959
|
created_count = 0
|
|
7912
7960
|
|
|
7913
|
-
# 1.
|
|
7961
|
+
# 1. Install CSSL extension GLOBALLY (unless stubs-only)
|
|
7914
7962
|
if not stubs_only:
|
|
7915
|
-
click.secho("
|
|
7963
|
+
click.secho("Installing CSSL extension globally...", fg='yellow')
|
|
7916
7964
|
|
|
7917
7965
|
# Find source extension directory
|
|
7918
7966
|
source_ext_dir = PathLib(__file__).parent.parent / 'vscode' / 'cssl'
|
|
7919
7967
|
|
|
7920
7968
|
if source_ext_dir.exists():
|
|
7921
|
-
|
|
7922
|
-
|
|
7923
|
-
|
|
7924
|
-
|
|
7925
|
-
|
|
7926
|
-
|
|
7927
|
-
|
|
7928
|
-
|
|
7929
|
-
|
|
7930
|
-
|
|
7931
|
-
|
|
7932
|
-
|
|
7933
|
-
|
|
7934
|
-
|
|
7935
|
-
|
|
7936
|
-
|
|
7937
|
-
|
|
7938
|
-
|
|
7939
|
-
|
|
7940
|
-
|
|
7941
|
-
|
|
7942
|
-
|
|
7943
|
-
|
|
7944
|
-
|
|
7945
|
-
|
|
7946
|
-
|
|
7947
|
-
|
|
7948
|
-
|
|
7949
|
-
|
|
7950
|
-
|
|
7951
|
-
|
|
7952
|
-
|
|
7953
|
-
|
|
7954
|
-
|
|
7955
|
-
|
|
7956
|
-
|
|
7957
|
-
|
|
7958
|
-
|
|
7959
|
-
|
|
7960
|
-
click.echo(f"
|
|
7969
|
+
# Get version from package.json
|
|
7970
|
+
pkg_json = source_ext_dir / 'package.json'
|
|
7971
|
+
current_version = "1.1.0"
|
|
7972
|
+
if pkg_json.exists():
|
|
7973
|
+
try:
|
|
7974
|
+
pkg_data = json.loads(pkg_json.read_text(encoding='utf-8'))
|
|
7975
|
+
current_version = pkg_data.get('version', '1.1.0')
|
|
7976
|
+
except:
|
|
7977
|
+
pass
|
|
7978
|
+
|
|
7979
|
+
# Find global VSCode extensions directory
|
|
7980
|
+
if os.name == 'nt': # Windows
|
|
7981
|
+
global_ext_dir = PathLib(os.environ.get('USERPROFILE', '')) / '.vscode' / 'extensions'
|
|
7982
|
+
else: # Linux/Mac
|
|
7983
|
+
global_ext_dir = PathLib.home() / '.vscode' / 'extensions'
|
|
7984
|
+
|
|
7985
|
+
if not global_ext_dir.exists():
|
|
7986
|
+
# Try VSCode Insiders
|
|
7987
|
+
if os.name == 'nt':
|
|
7988
|
+
global_ext_dir = PathLib(os.environ.get('USERPROFILE', '')) / '.vscode-insiders' / 'extensions'
|
|
7989
|
+
else:
|
|
7990
|
+
global_ext_dir = PathLib.home() / '.vscode-insiders' / 'extensions'
|
|
7991
|
+
|
|
7992
|
+
if global_ext_dir.exists():
|
|
7993
|
+
target_dir = global_ext_dir / f'includecpp.cssl-{current_version}'
|
|
7994
|
+
|
|
7995
|
+
# Check if already installed with same or older version
|
|
7996
|
+
needs_install = force
|
|
7997
|
+
existing_version = None
|
|
7998
|
+
|
|
7999
|
+
# Find existing installations
|
|
8000
|
+
for existing in global_ext_dir.glob('includecpp.cssl-*'):
|
|
8001
|
+
existing_version = existing.name.split('-')[-1]
|
|
8002
|
+
if existing_version != current_version:
|
|
8003
|
+
# Remove old version
|
|
8004
|
+
click.echo(f" Removing old version: {existing_version}")
|
|
8005
|
+
shutil.rmtree(existing)
|
|
8006
|
+
needs_install = True
|
|
8007
|
+
elif not force:
|
|
8008
|
+
click.echo(f" Already installed: v{current_version}")
|
|
8009
|
+
needs_install = False
|
|
8010
|
+
|
|
8011
|
+
if not target_dir.exists():
|
|
8012
|
+
needs_install = True
|
|
8013
|
+
|
|
8014
|
+
if needs_install:
|
|
8015
|
+
# Remove target if exists (force reinstall)
|
|
8016
|
+
if target_dir.exists():
|
|
8017
|
+
shutil.rmtree(target_dir)
|
|
8018
|
+
|
|
8019
|
+
# Copy extension to global directory
|
|
8020
|
+
shutil.copytree(source_ext_dir, target_dir)
|
|
8021
|
+
created_count += 1
|
|
8022
|
+
|
|
8023
|
+
if existing_version and existing_version != current_version:
|
|
8024
|
+
click.secho(f" Updated: v{existing_version} -> v{current_version}", fg='green')
|
|
8025
|
+
else:
|
|
8026
|
+
click.secho(f" Installed: v{current_version}", fg='green')
|
|
7961
8027
|
|
|
7962
|
-
|
|
8028
|
+
click.echo(f" Location: {target_dir}")
|
|
8029
|
+
click.echo()
|
|
8030
|
+
click.secho(" Restart VSCode to activate the extension!", fg='yellow', bold=True)
|
|
8031
|
+
else:
|
|
8032
|
+
click.secho(" VSCode extensions directory not found.", fg='red')
|
|
8033
|
+
click.echo(" Make sure VSCode is installed.")
|
|
7963
8034
|
else:
|
|
7964
8035
|
click.secho(" Warning: CSSL extension source not found", fg='yellow')
|
|
7965
8036
|
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "cssl",
|
|
3
|
+
"displayName": "CSSL - CSO Service Script Language",
|
|
4
|
+
"description": "Professional syntax highlighting, snippets, and language support for CSSL scripts (.cssl, .cssl-pl, .cssl-mod)",
|
|
5
|
+
"version": "1.2.2",
|
|
6
|
+
"publisher": "IncludeCPP",
|
|
7
|
+
"icon": "images/cssl.png",
|
|
8
|
+
"engines": {
|
|
9
|
+
"vscode": "^1.60.0"
|
|
10
|
+
},
|
|
11
|
+
"categories": [
|
|
12
|
+
"Programming Languages",
|
|
13
|
+
"Snippets"
|
|
14
|
+
],
|
|
15
|
+
"keywords": [
|
|
16
|
+
"cssl",
|
|
17
|
+
"cso",
|
|
18
|
+
"script",
|
|
19
|
+
"includecpp",
|
|
20
|
+
"c++",
|
|
21
|
+
"python"
|
|
22
|
+
],
|
|
23
|
+
"contributes": {
|
|
24
|
+
"languages": [
|
|
25
|
+
{
|
|
26
|
+
"id": "cssl",
|
|
27
|
+
"aliases": ["CSSL", "cssl", "CSO Service Script"],
|
|
28
|
+
"extensions": [".cssl"],
|
|
29
|
+
"configuration": "./language-configuration.json",
|
|
30
|
+
"icon": {
|
|
31
|
+
"light": "./images/cssl.png",
|
|
32
|
+
"dark": "./images/cssl.png"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"id": "cssl-mod",
|
|
37
|
+
"aliases": ["CSSL Module", "cssl-mod"],
|
|
38
|
+
"extensions": [".cssl-mod"],
|
|
39
|
+
"configuration": "./language-configuration.json",
|
|
40
|
+
"icon": {
|
|
41
|
+
"light": "./images/cssl_pl.png",
|
|
42
|
+
"dark": "./images/cssl_pl.png"
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"id": "cssl-pl",
|
|
47
|
+
"aliases": ["CSSL Payload", "cssl-pl"],
|
|
48
|
+
"extensions": [".cssl-pl"],
|
|
49
|
+
"configuration": "./language-configuration.json",
|
|
50
|
+
"icon": {
|
|
51
|
+
"light": "./images/cssl_pl.png",
|
|
52
|
+
"dark": "./images/cssl_pl.png"
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
],
|
|
56
|
+
"grammars": [
|
|
57
|
+
{
|
|
58
|
+
"language": "cssl",
|
|
59
|
+
"scopeName": "source.cssl",
|
|
60
|
+
"path": "./syntaxes/cssl.tmLanguage.json"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"language": "cssl-mod",
|
|
64
|
+
"scopeName": "source.cssl",
|
|
65
|
+
"path": "./syntaxes/cssl.tmLanguage.json"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"language": "cssl-pl",
|
|
69
|
+
"scopeName": "source.cssl",
|
|
70
|
+
"path": "./syntaxes/cssl.tmLanguage.json"
|
|
71
|
+
}
|
|
72
|
+
],
|
|
73
|
+
"snippets": [
|
|
74
|
+
{
|
|
75
|
+
"language": "cssl",
|
|
76
|
+
"path": "./snippets/cssl.snippets.json"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"language": "cssl-mod",
|
|
80
|
+
"path": "./snippets/cssl.snippets.json"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"language": "cssl-pl",
|
|
84
|
+
"path": "./snippets/cssl.snippets.json"
|
|
85
|
+
}
|
|
86
|
+
]
|
|
87
|
+
}
|
|
88
|
+
}
|
|
@@ -27,17 +27,20 @@
|
|
|
27
27
|
{ "include": "#function-calls" },
|
|
28
28
|
{ "include": "#builtins" },
|
|
29
29
|
{ "include": "#operators" },
|
|
30
|
-
{ "include": "#constants" }
|
|
30
|
+
{ "include": "#constants" },
|
|
31
|
+
{ "include": "#variables" }
|
|
31
32
|
],
|
|
32
33
|
"repository": {
|
|
33
34
|
"super-functions": {
|
|
34
35
|
"patterns": [
|
|
35
36
|
{
|
|
36
|
-
"
|
|
37
|
+
"comment": "#$run, #$exec, #$printl - yellow/gold color",
|
|
38
|
+
"name": "entity.name.tag.super.cssl",
|
|
37
39
|
"match": "#\\$(run|exec|printl|init)\\b"
|
|
38
40
|
},
|
|
39
41
|
{
|
|
40
|
-
"
|
|
42
|
+
"comment": "#$anyFunction - yellow/gold color",
|
|
43
|
+
"name": "entity.name.tag.super.cssl",
|
|
41
44
|
"match": "#\\$[a-zA-Z_][a-zA-Z0-9_]*"
|
|
42
45
|
}
|
|
43
46
|
]
|
|
@@ -111,22 +114,67 @@
|
|
|
111
114
|
"name": "meta.class.cssl",
|
|
112
115
|
"begin": "\\b(class)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\s*\\{",
|
|
113
116
|
"beginCaptures": {
|
|
114
|
-
"1": { "name": "
|
|
117
|
+
"1": { "name": "storage.type.class.cssl" },
|
|
115
118
|
"2": { "name": "entity.name.class.cssl" }
|
|
116
119
|
},
|
|
117
120
|
"end": "\\}",
|
|
118
121
|
"patterns": [
|
|
119
122
|
{ "include": "#comments" },
|
|
120
|
-
{ "include": "#
|
|
123
|
+
{ "include": "#constructor-definition" },
|
|
124
|
+
{ "include": "#class-method-definition" },
|
|
125
|
+
{ "include": "#class-member-declaration" },
|
|
121
126
|
{ "include": "#types" },
|
|
122
127
|
{ "include": "#this-access" },
|
|
128
|
+
{ "include": "#captured-references" },
|
|
129
|
+
{ "include": "#global-references" },
|
|
130
|
+
{ "include": "#shared-references" },
|
|
123
131
|
{ "include": "#strings" },
|
|
124
132
|
{ "include": "#numbers" },
|
|
133
|
+
{ "include": "#keywords" },
|
|
134
|
+
{ "include": "#function-calls" },
|
|
135
|
+
{ "include": "#builtins" },
|
|
125
136
|
{ "include": "#operators" }
|
|
126
137
|
]
|
|
127
138
|
}
|
|
128
139
|
]
|
|
129
140
|
},
|
|
141
|
+
"constructor-definition": {
|
|
142
|
+
"patterns": [
|
|
143
|
+
{
|
|
144
|
+
"comment": "Constructor: ClassName { ... } or void ClassName(...)",
|
|
145
|
+
"name": "meta.constructor.cssl",
|
|
146
|
+
"match": "\\b(void\\s+)?([A-Z][a-zA-Z0-9_]*)\\s*(?=\\{|\\()",
|
|
147
|
+
"captures": {
|
|
148
|
+
"1": { "name": "storage.type.cssl" },
|
|
149
|
+
"2": { "name": "entity.name.function.cssl" }
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
]
|
|
153
|
+
},
|
|
154
|
+
"class-method-definition": {
|
|
155
|
+
"patterns": [
|
|
156
|
+
{
|
|
157
|
+
"name": "meta.method.cssl",
|
|
158
|
+
"match": "\\b(void|int|string|float|bool|dynamic|define|shuffled)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\s*\\(",
|
|
159
|
+
"captures": {
|
|
160
|
+
"1": { "name": "storage.type.cssl" },
|
|
161
|
+
"2": { "name": "entity.name.function.cssl" }
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
]
|
|
165
|
+
},
|
|
166
|
+
"class-member-declaration": {
|
|
167
|
+
"patterns": [
|
|
168
|
+
{
|
|
169
|
+
"name": "meta.member.cssl",
|
|
170
|
+
"match": "\\b(int|string|float|bool|dynamic|auto)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\s*;",
|
|
171
|
+
"captures": {
|
|
172
|
+
"1": { "name": "storage.type.cssl" },
|
|
173
|
+
"2": { "name": "variable.other.member.cssl" }
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
]
|
|
177
|
+
},
|
|
130
178
|
"function-definition": {
|
|
131
179
|
"patterns": [
|
|
132
180
|
{
|
|
@@ -158,12 +206,24 @@
|
|
|
158
206
|
"match": "\\b(if|else|elif|while|for|foreach|in|range|switch|case|default|break|continue|return|try|catch|finally|throw)\\b"
|
|
159
207
|
},
|
|
160
208
|
{
|
|
161
|
-
"name": "
|
|
162
|
-
"match": "\\b(class|
|
|
209
|
+
"name": "storage.type.class.cssl",
|
|
210
|
+
"match": "\\b(class|struct|structure|enum|interface)\\b"
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"name": "keyword.operator.new.cssl",
|
|
214
|
+
"match": "\\bnew\\b"
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
"name": "variable.language.this.cssl",
|
|
218
|
+
"match": "\\bthis\\b"
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"name": "storage.type.function.cssl",
|
|
222
|
+
"match": "\\b(define|void|shuffled)\\b"
|
|
163
223
|
},
|
|
164
224
|
{
|
|
165
225
|
"name": "keyword.other.cssl",
|
|
166
|
-
"match": "\\b(service-init|service-run|service-include|
|
|
226
|
+
"match": "\\b(service-init|service-run|service-include|main|package|package-includes|exec|as|global|include|get|payload|convert)\\b"
|
|
167
227
|
},
|
|
168
228
|
{
|
|
169
229
|
"name": "keyword.operator.logical.cssl",
|
|
@@ -182,19 +242,19 @@
|
|
|
182
242
|
"match": "\\b(int|string|float|bool|void|json|dynamic|auto|long|double)\\b"
|
|
183
243
|
},
|
|
184
244
|
{
|
|
185
|
-
"
|
|
186
|
-
"
|
|
187
|
-
|
|
188
|
-
{
|
|
189
|
-
"name": "storage.type.generic.cssl",
|
|
190
|
-
"match": "\\b(array|vector|stack|list|dictionary|dict|map|datastruct|dataspace|shuffled|iterator|combo|openquote|instance|tuple|set|queue)\\s*<",
|
|
245
|
+
"comment": "Generic containers with type parameter: vector<int>, map<string, int>",
|
|
246
|
+
"name": "meta.generic.cssl",
|
|
247
|
+
"match": "(\\b(?:array|vector|stack|list|dictionary|dict|map|datastruct|dataspace|shuffled|iterator|combo|openquote|tuple|set|queue))(<)([^>]+)(>)",
|
|
191
248
|
"captures": {
|
|
192
|
-
"1": { "name": "storage.type.container.cssl" }
|
|
249
|
+
"1": { "name": "storage.type.container.cssl" },
|
|
250
|
+
"2": { "name": "punctuation.definition.typeparameters.begin.cssl" },
|
|
251
|
+
"3": { "name": "storage.type.parameter.cssl" },
|
|
252
|
+
"4": { "name": "punctuation.definition.typeparameters.end.cssl" }
|
|
193
253
|
}
|
|
194
254
|
},
|
|
195
255
|
{
|
|
196
|
-
"name": "storage.type.
|
|
197
|
-
"match": "\\
|
|
256
|
+
"name": "storage.type.container.cssl",
|
|
257
|
+
"match": "\\b(array|vector|stack|list|dictionary|dict|map|datastruct|dataspace|shuffled|iterator|combo|openquote|instance|tuple|set|queue)\\b"
|
|
198
258
|
},
|
|
199
259
|
{
|
|
200
260
|
"name": "storage.type.combo-open.cssl",
|
|
@@ -213,19 +273,23 @@
|
|
|
213
273
|
"injection-operators": {
|
|
214
274
|
"patterns": [
|
|
215
275
|
{
|
|
216
|
-
"
|
|
276
|
+
"comment": "Infuse operators <<== (REPLACE) - orange color",
|
|
277
|
+
"name": "constant.character.escape.infuse.cssl",
|
|
217
278
|
"match": "(\\+<<==|<<==|-<<==)"
|
|
218
279
|
},
|
|
219
280
|
{
|
|
220
|
-
"
|
|
281
|
+
"comment": "Infuse out operators ==>> - orange color",
|
|
282
|
+
"name": "constant.character.escape.infuse.out.cssl",
|
|
221
283
|
"match": "(==>>\\+|==>>|-==>>)"
|
|
222
284
|
},
|
|
223
285
|
{
|
|
224
|
-
"
|
|
286
|
+
"comment": "Brute injection <== (ADD) - cyan/blue color",
|
|
287
|
+
"name": "support.function.brute.cssl",
|
|
225
288
|
"match": "(\\+<==|<==|-<==)"
|
|
226
289
|
},
|
|
227
290
|
{
|
|
228
|
-
"
|
|
291
|
+
"comment": "Brute injection out ==> - cyan/blue color",
|
|
292
|
+
"name": "support.function.brute.out.cssl",
|
|
229
293
|
"match": "(==>\\+|==>|-==>)"
|
|
230
294
|
},
|
|
231
295
|
{
|
|
@@ -293,23 +357,30 @@
|
|
|
293
357
|
"captured-references": {
|
|
294
358
|
"patterns": [
|
|
295
359
|
{
|
|
296
|
-
"
|
|
297
|
-
"match": "%[a-zA-Z_][a-zA-Z0-9_]*"
|
|
360
|
+
"comment": "%identifier - % is light blue/cyan, identifier is pink",
|
|
361
|
+
"match": "(%)([a-zA-Z_][a-zA-Z0-9_]*)",
|
|
362
|
+
"captures": {
|
|
363
|
+
"1": { "name": "support.type.cssl" },
|
|
364
|
+
"2": { "name": "entity.other.inherited-class.cssl" }
|
|
365
|
+
}
|
|
298
366
|
}
|
|
299
367
|
]
|
|
300
368
|
},
|
|
301
369
|
"global-references": {
|
|
302
370
|
"patterns": [
|
|
303
371
|
{
|
|
304
|
-
"
|
|
372
|
+
"comment": "@identifier - magenta color (full)",
|
|
373
|
+
"name": "constant.other.symbol.cssl",
|
|
305
374
|
"match": "@[a-zA-Z_][a-zA-Z0-9_]*"
|
|
306
375
|
},
|
|
307
376
|
{
|
|
308
|
-
"
|
|
377
|
+
"comment": "r@identifier - magenta color",
|
|
378
|
+
"name": "constant.other.symbol.cssl",
|
|
309
379
|
"match": "r@[a-zA-Z_][a-zA-Z0-9_]*"
|
|
310
380
|
},
|
|
311
381
|
{
|
|
312
|
-
"
|
|
382
|
+
"comment": "s@identifier - magenta color",
|
|
383
|
+
"name": "constant.other.symbol.cssl",
|
|
313
384
|
"match": "s@[a-zA-Z_][a-zA-Z0-9_]*"
|
|
314
385
|
}
|
|
315
386
|
]
|
|
@@ -317,16 +388,44 @@
|
|
|
317
388
|
"shared-references": {
|
|
318
389
|
"patterns": [
|
|
319
390
|
{
|
|
320
|
-
"
|
|
391
|
+
"comment": "$identifier - same color as 'new' keyword (full)",
|
|
392
|
+
"name": "keyword.operator.new.cssl",
|
|
321
393
|
"match": "\\$[a-zA-Z_][a-zA-Z0-9_]*"
|
|
322
394
|
}
|
|
323
395
|
]
|
|
324
396
|
},
|
|
397
|
+
"variables": {
|
|
398
|
+
"patterns": [
|
|
399
|
+
{
|
|
400
|
+
"comment": "Regular variables - pink/salmon color",
|
|
401
|
+
"name": "entity.other.inherited-class.cssl",
|
|
402
|
+
"match": "\\b[a-z_][a-zA-Z0-9_]*\\b"
|
|
403
|
+
}
|
|
404
|
+
]
|
|
405
|
+
},
|
|
325
406
|
"instance-references": {
|
|
326
407
|
"patterns": [
|
|
327
408
|
{
|
|
328
|
-
"
|
|
329
|
-
"
|
|
409
|
+
"comment": "instance<\"name\"> - shared instance reference with string",
|
|
410
|
+
"name": "meta.instance.cssl",
|
|
411
|
+
"match": "(\\binstance)(<)(\"[^\"]+\")(>)",
|
|
412
|
+
"captures": {
|
|
413
|
+
"1": { "name": "storage.type.instance.cssl" },
|
|
414
|
+
"2": { "name": "punctuation.definition.typeparameters.begin.cssl" },
|
|
415
|
+
"3": { "name": "string.quoted.double.cssl" },
|
|
416
|
+
"4": { "name": "punctuation.definition.typeparameters.end.cssl" }
|
|
417
|
+
}
|
|
418
|
+
},
|
|
419
|
+
{
|
|
420
|
+
"comment": "instance<Type> - shared instance reference with type",
|
|
421
|
+
"name": "meta.instance.cssl",
|
|
422
|
+
"match": "(\\binstance)(<)([a-zA-Z_][a-zA-Z0-9_]*)(>)",
|
|
423
|
+
"captures": {
|
|
424
|
+
"1": { "name": "storage.type.instance.cssl" },
|
|
425
|
+
"2": { "name": "punctuation.definition.typeparameters.begin.cssl" },
|
|
426
|
+
"3": { "name": "entity.name.type.cssl" },
|
|
427
|
+
"4": { "name": "punctuation.definition.typeparameters.end.cssl" }
|
|
428
|
+
}
|
|
330
429
|
}
|
|
331
430
|
]
|
|
332
431
|
},
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "IncludeCPP"
|
|
7
|
-
version = "3.7.
|
|
7
|
+
version = "3.7.13"
|
|
8
8
|
description = "Professional C++ Python bindings with type-generic templates, pystubs and native threading"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.9"
|
|
@@ -63,5 +63,6 @@ includecpp = [
|
|
|
63
63
|
"cli/*.pyi",
|
|
64
64
|
"vscode/cssl/*.json",
|
|
65
65
|
"vscode/cssl/syntaxes/*.json",
|
|
66
|
-
"vscode/cssl/snippets/*.json"
|
|
66
|
+
"vscode/cssl/snippets/*.json",
|
|
67
|
+
"vscode/cssl/images/*.png"
|
|
67
68
|
]
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "cssl",
|
|
3
|
-
"displayName": "CSSL - CSO Service Script Language",
|
|
4
|
-
"description": "Professional syntax highlighting, snippets, and language support for CSSL scripts (.cssl, .cssl-pl, .cssl-mod)",
|
|
5
|
-
"version": "1.1.0",
|
|
6
|
-
"publisher": "IncludeCPP",
|
|
7
|
-
"icon": "images/cssl-icon.png",
|
|
8
|
-
"engines": {
|
|
9
|
-
"vscode": "^1.60.0"
|
|
10
|
-
},
|
|
11
|
-
"categories": [
|
|
12
|
-
"Programming Languages",
|
|
13
|
-
"Snippets"
|
|
14
|
-
],
|
|
15
|
-
"keywords": [
|
|
16
|
-
"cssl",
|
|
17
|
-
"cso",
|
|
18
|
-
"script",
|
|
19
|
-
"includecpp",
|
|
20
|
-
"c++",
|
|
21
|
-
"python"
|
|
22
|
-
],
|
|
23
|
-
"contributes": {
|
|
24
|
-
"languages": [
|
|
25
|
-
{
|
|
26
|
-
"id": "cssl",
|
|
27
|
-
"aliases": ["CSSL", "cssl", "CSO Service Script"],
|
|
28
|
-
"extensions": [".cssl", ".cssl-pl", ".cssl-mod"],
|
|
29
|
-
"configuration": "./language-configuration.json",
|
|
30
|
-
"icon": {
|
|
31
|
-
"light": "./images/cssl-icon.png",
|
|
32
|
-
"dark": "./images/cssl-icon.png"
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
],
|
|
36
|
-
"grammars": [
|
|
37
|
-
{
|
|
38
|
-
"language": "cssl",
|
|
39
|
-
"scopeName": "source.cssl",
|
|
40
|
-
"path": "./syntaxes/cssl.tmLanguage.json"
|
|
41
|
-
}
|
|
42
|
-
],
|
|
43
|
-
"snippets": [
|
|
44
|
-
{
|
|
45
|
-
"language": "cssl",
|
|
46
|
-
"path": "./snippets/cssl.snippets.json"
|
|
47
|
-
}
|
|
48
|
-
]
|
|
49
|
-
}
|
|
50
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|