IncludeCPP 3.7.23__tar.gz → 3.7.25__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.23 → includecpp-3.7.25}/IncludeCPP.egg-info/PKG-INFO +1 -1
- {includecpp-3.7.23 → includecpp-3.7.25}/IncludeCPP.egg-info/SOURCES.txt +2 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/PKG-INFO +1 -1
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/__init__.py +1 -1
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/core/cssl/cssl_parser.py +23 -1
- includecpp-3.7.25/includecpp/vscode/cssl/extension.js +133 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/vscode/cssl/package.json +73 -4
- {includecpp-3.7.23 → includecpp-3.7.25}/pyproject.toml +2 -1
- {includecpp-3.7.23 → includecpp-3.7.25}/IncludeCPP.egg-info/dependency_links.txt +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/IncludeCPP.egg-info/entry_points.txt +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/IncludeCPP.egg-info/requires.txt +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/IncludeCPP.egg-info/top_level.txt +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/LICENSE +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/MANIFEST.in +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/README.md +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/__init__.pyi +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/__main__.py +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/cli/__init__.py +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/cli/commands.py +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/cli/config_parser.py +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/core/__init__.py +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/core/ai_integration.py +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/core/build_manager.py +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/core/cpp_api.py +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/core/cpp_api.pyi +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/core/cppy_converter.py +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/core/cssl/CSSL_DOCUMENTATION.md +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/core/cssl/__init__.py +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/core/cssl/cssl_builtins.py +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/core/cssl/cssl_builtins.pyi +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/core/cssl/cssl_events.py +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/core/cssl/cssl_modules.py +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/core/cssl/cssl_runtime.py +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/core/cssl/cssl_syntax.py +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/core/cssl/cssl_types.py +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/core/cssl_bridge.py +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/core/cssl_bridge.pyi +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/core/error_catalog.py +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/core/error_formatter.py +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/core/exceptions.py +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/core/path_discovery.py +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/core/project_ui.py +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/core/settings_ui.py +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/generator/__init__.py +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/generator/parser.cpp +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/generator/parser.h +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/generator/type_resolver.cpp +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/generator/type_resolver.h +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/py.typed +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/templates/cpp.proj.template +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/vscode/__init__.py +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/vscode/cssl/__init__.py +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/vscode/cssl/images/cssl.png +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/vscode/cssl/images/cssl_pl.png +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/vscode/cssl/language-configuration.json +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/vscode/cssl/snippets/cssl.snippets.json +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/includecpp/vscode/cssl/syntaxes/cssl.tmLanguage.json +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/requirements.txt +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/setup.cfg +0 -0
- {includecpp-3.7.23 → includecpp-3.7.25}/setup.py +0 -0
|
@@ -43,6 +43,7 @@ setup.py
|
|
|
43
43
|
./includecpp/templates/cpp.proj.template
|
|
44
44
|
./includecpp/vscode/__init__.py
|
|
45
45
|
./includecpp/vscode/cssl/__init__.py
|
|
46
|
+
./includecpp/vscode/cssl/extension.js
|
|
46
47
|
./includecpp/vscode/cssl/language-configuration.json
|
|
47
48
|
./includecpp/vscode/cssl/package.json
|
|
48
49
|
./includecpp/vscode/cssl/images/cssl.png
|
|
@@ -94,6 +95,7 @@ includecpp/generator/type_resolver.h
|
|
|
94
95
|
includecpp/templates/cpp.proj.template
|
|
95
96
|
includecpp/vscode/__init__.py
|
|
96
97
|
includecpp/vscode/cssl/__init__.py
|
|
98
|
+
includecpp/vscode/cssl/extension.js
|
|
97
99
|
includecpp/vscode/cssl/language-configuration.json
|
|
98
100
|
includecpp/vscode/cssl/package.json
|
|
99
101
|
includecpp/vscode/cssl/images/cssl.png
|
|
@@ -951,6 +951,27 @@ class CSSLParser:
|
|
|
951
951
|
self._expect(TokenType.BLOCK_END)
|
|
952
952
|
return node
|
|
953
953
|
|
|
954
|
+
def _looks_like_namespace_call(self) -> bool:
|
|
955
|
+
"""Check if current position looks like a namespace function call.
|
|
956
|
+
|
|
957
|
+
Pattern: keyword::identifier(...) like json::write(), string::cut()
|
|
958
|
+
This allows type keywords to be used as namespace prefixes for function calls.
|
|
959
|
+
"""
|
|
960
|
+
if not self._check(TokenType.KEYWORD):
|
|
961
|
+
return False
|
|
962
|
+
|
|
963
|
+
# Save position
|
|
964
|
+
saved_pos = self.pos
|
|
965
|
+
|
|
966
|
+
self._advance() # Skip keyword
|
|
967
|
+
|
|
968
|
+
# Must be followed by ::
|
|
969
|
+
result = self._check(TokenType.DOUBLE_COLON)
|
|
970
|
+
|
|
971
|
+
# Restore position
|
|
972
|
+
self.pos = saved_pos
|
|
973
|
+
return result
|
|
974
|
+
|
|
954
975
|
def _looks_like_typed_variable(self) -> bool:
|
|
955
976
|
"""Check if current position looks like a typed variable declaration:
|
|
956
977
|
type_name varName; or type_name<T> varName; or type_name varName = value;
|
|
@@ -1452,7 +1473,8 @@ class CSSLParser:
|
|
|
1452
1473
|
elif (self._check(TokenType.IDENTIFIER) or self._check(TokenType.AT) or
|
|
1453
1474
|
self._check(TokenType.CAPTURED_REF) or self._check(TokenType.SHARED_REF) or
|
|
1454
1475
|
self._check(TokenType.GLOBAL_REF) or self._check(TokenType.SELF_REF) or
|
|
1455
|
-
(self._check(TokenType.KEYWORD) and self._current().value in ('this', 'new'))
|
|
1476
|
+
(self._check(TokenType.KEYWORD) and self._current().value in ('this', 'new')) or
|
|
1477
|
+
self._looks_like_namespace_call()):
|
|
1456
1478
|
return self._parse_expression_statement()
|
|
1457
1479
|
else:
|
|
1458
1480
|
self._advance()
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
// CSSL Language Extension for VS Code
|
|
2
|
+
// Provides run functionality for .cssl files
|
|
3
|
+
|
|
4
|
+
const vscode = require('vscode');
|
|
5
|
+
const path = require('path');
|
|
6
|
+
const { spawn } = require('child_process');
|
|
7
|
+
|
|
8
|
+
let outputChannel;
|
|
9
|
+
|
|
10
|
+
function activate(context) {
|
|
11
|
+
// Create output channel for CSSL
|
|
12
|
+
outputChannel = vscode.window.createOutputChannel('CSSL');
|
|
13
|
+
|
|
14
|
+
// Register the run command
|
|
15
|
+
const runCommand = vscode.commands.registerCommand('cssl.runFile', async () => {
|
|
16
|
+
const editor = vscode.window.activeTextEditor;
|
|
17
|
+
|
|
18
|
+
if (!editor) {
|
|
19
|
+
vscode.window.showErrorMessage('No active editor found');
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const document = editor.document;
|
|
24
|
+
const filePath = document.fileName;
|
|
25
|
+
const ext = path.extname(filePath).toLowerCase();
|
|
26
|
+
|
|
27
|
+
// Only allow .cssl files (not .cssl-mod or .cssl-pl)
|
|
28
|
+
if (ext !== '.cssl') {
|
|
29
|
+
vscode.window.showWarningMessage('Only .cssl files can be executed. Modules (.cssl-mod) and Payloads (.cssl-pl) cannot be run directly.');
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// Save the file before running
|
|
34
|
+
if (document.isDirty) {
|
|
35
|
+
await document.save();
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Get configuration
|
|
39
|
+
const config = vscode.workspace.getConfiguration('cssl');
|
|
40
|
+
const pythonPath = config.get('pythonPath', 'python');
|
|
41
|
+
const showOutput = config.get('showOutput', true);
|
|
42
|
+
|
|
43
|
+
// Show output channel
|
|
44
|
+
if (showOutput) {
|
|
45
|
+
outputChannel.show(true);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
outputChannel.clear();
|
|
49
|
+
outputChannel.appendLine(`[CSSL] Running: ${path.basename(filePath)}`);
|
|
50
|
+
outputChannel.appendLine(`[CSSL] Path: ${filePath}`);
|
|
51
|
+
outputChannel.appendLine('─'.repeat(50));
|
|
52
|
+
|
|
53
|
+
// Run the CSSL file using includecpp cssl run
|
|
54
|
+
const args = ['-m', 'includecpp', 'cssl', 'run', filePath];
|
|
55
|
+
|
|
56
|
+
const process = spawn(pythonPath, args, {
|
|
57
|
+
cwd: path.dirname(filePath),
|
|
58
|
+
env: { ...process.env }
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
let hasError = false;
|
|
62
|
+
|
|
63
|
+
process.stdout.on('data', (data) => {
|
|
64
|
+
outputChannel.append(data.toString());
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
process.stderr.on('data', (data) => {
|
|
68
|
+
hasError = true;
|
|
69
|
+
outputChannel.append(data.toString());
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
process.on('close', (code) => {
|
|
73
|
+
outputChannel.appendLine('');
|
|
74
|
+
outputChannel.appendLine('─'.repeat(50));
|
|
75
|
+
if (code === 0) {
|
|
76
|
+
outputChannel.appendLine(`[CSSL] Finished successfully`);
|
|
77
|
+
} else {
|
|
78
|
+
outputChannel.appendLine(`[CSSL] Exited with code: ${code}`);
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
process.on('error', (err) => {
|
|
83
|
+
outputChannel.appendLine(`[CSSL] Error: ${err.message}`);
|
|
84
|
+
vscode.window.showErrorMessage(`Failed to run CSSL: ${err.message}. Make sure IncludeCPP is installed (pip install includecpp).`);
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
context.subscriptions.push(runCommand);
|
|
89
|
+
context.subscriptions.push(outputChannel);
|
|
90
|
+
|
|
91
|
+
// Register task provider for CSSL
|
|
92
|
+
const taskProvider = vscode.tasks.registerTaskProvider('cssl', {
|
|
93
|
+
provideTasks: () => {
|
|
94
|
+
return [];
|
|
95
|
+
},
|
|
96
|
+
resolveTask: (task) => {
|
|
97
|
+
if (task.definition.type === 'cssl') {
|
|
98
|
+
const config = vscode.workspace.getConfiguration('cssl');
|
|
99
|
+
const pythonPath = config.get('pythonPath', 'python');
|
|
100
|
+
const file = task.definition.file;
|
|
101
|
+
|
|
102
|
+
const execution = new vscode.ShellExecution(
|
|
103
|
+
`${pythonPath} -m includecpp cssl run "${file}"`
|
|
104
|
+
);
|
|
105
|
+
|
|
106
|
+
return new vscode.Task(
|
|
107
|
+
task.definition,
|
|
108
|
+
vscode.TaskScope.Workspace,
|
|
109
|
+
'Run CSSL',
|
|
110
|
+
'cssl',
|
|
111
|
+
execution,
|
|
112
|
+
[]
|
|
113
|
+
);
|
|
114
|
+
}
|
|
115
|
+
return undefined;
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
context.subscriptions.push(taskProvider);
|
|
120
|
+
|
|
121
|
+
console.log('CSSL extension activated');
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
function deactivate() {
|
|
125
|
+
if (outputChannel) {
|
|
126
|
+
outputChannel.dispose();
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
module.exports = {
|
|
131
|
+
activate,
|
|
132
|
+
deactivate
|
|
133
|
+
};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "cssl",
|
|
3
3
|
"displayName": "CSSL Language",
|
|
4
4
|
"description": "Professional syntax highlighting, snippets, and language support for CSSL scripts (.cssl, .cssl-pl, .cssl-mod)",
|
|
5
|
-
"version": "1.
|
|
5
|
+
"version": "1.3.0",
|
|
6
6
|
"publisher": "IncludeCPP",
|
|
7
7
|
"icon": "images/cssl.png",
|
|
8
8
|
"engines": {
|
|
@@ -10,15 +10,21 @@
|
|
|
10
10
|
},
|
|
11
11
|
"categories": [
|
|
12
12
|
"Programming Languages",
|
|
13
|
-
"Snippets"
|
|
13
|
+
"Snippets",
|
|
14
|
+
"Debuggers"
|
|
14
15
|
],
|
|
15
16
|
"keywords": [
|
|
16
17
|
"cssl",
|
|
17
18
|
"script",
|
|
18
19
|
"includecpp",
|
|
19
20
|
"c++",
|
|
20
|
-
"python"
|
|
21
|
+
"python",
|
|
22
|
+
"run"
|
|
21
23
|
],
|
|
24
|
+
"activationEvents": [
|
|
25
|
+
"onLanguage:cssl"
|
|
26
|
+
],
|
|
27
|
+
"main": "./extension.js",
|
|
22
28
|
"contributes": {
|
|
23
29
|
"languages": [
|
|
24
30
|
{
|
|
@@ -82,6 +88,69 @@
|
|
|
82
88
|
"language": "cssl-pl",
|
|
83
89
|
"path": "./snippets/cssl.snippets.json"
|
|
84
90
|
}
|
|
85
|
-
]
|
|
91
|
+
],
|
|
92
|
+
"commands": [
|
|
93
|
+
{
|
|
94
|
+
"command": "cssl.runFile",
|
|
95
|
+
"title": "Run CSSL File",
|
|
96
|
+
"icon": "$(play)",
|
|
97
|
+
"enablement": "resourceExtname == .cssl"
|
|
98
|
+
}
|
|
99
|
+
],
|
|
100
|
+
"menus": {
|
|
101
|
+
"editor/title/run": [
|
|
102
|
+
{
|
|
103
|
+
"command": "cssl.runFile",
|
|
104
|
+
"when": "resourceExtname == .cssl",
|
|
105
|
+
"group": "navigation"
|
|
106
|
+
}
|
|
107
|
+
],
|
|
108
|
+
"editor/context": [
|
|
109
|
+
{
|
|
110
|
+
"command": "cssl.runFile",
|
|
111
|
+
"when": "resourceExtname == .cssl",
|
|
112
|
+
"group": "1_run"
|
|
113
|
+
}
|
|
114
|
+
]
|
|
115
|
+
},
|
|
116
|
+
"keybindings": [
|
|
117
|
+
{
|
|
118
|
+
"command": "cssl.runFile",
|
|
119
|
+
"key": "f5",
|
|
120
|
+
"when": "resourceExtname == .cssl && !inDebugMode"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"command": "cssl.runFile",
|
|
124
|
+
"key": "ctrl+f5",
|
|
125
|
+
"when": "resourceExtname == .cssl"
|
|
126
|
+
}
|
|
127
|
+
],
|
|
128
|
+
"taskDefinitions": [
|
|
129
|
+
{
|
|
130
|
+
"type": "cssl",
|
|
131
|
+
"required": ["file"],
|
|
132
|
+
"properties": {
|
|
133
|
+
"file": {
|
|
134
|
+
"type": "string",
|
|
135
|
+
"description": "The CSSL file to run"
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
],
|
|
140
|
+
"configuration": {
|
|
141
|
+
"title": "CSSL",
|
|
142
|
+
"properties": {
|
|
143
|
+
"cssl.pythonPath": {
|
|
144
|
+
"type": "string",
|
|
145
|
+
"default": "python",
|
|
146
|
+
"description": "Path to Python executable"
|
|
147
|
+
},
|
|
148
|
+
"cssl.showOutput": {
|
|
149
|
+
"type": "boolean",
|
|
150
|
+
"default": true,
|
|
151
|
+
"description": "Show output panel when running CSSL files"
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
86
155
|
}
|
|
87
156
|
}
|
|
@@ -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.25"
|
|
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"
|
|
@@ -62,6 +62,7 @@ includecpp = [
|
|
|
62
62
|
"core/cssl/*.md",
|
|
63
63
|
"cli/*.pyi",
|
|
64
64
|
"vscode/cssl/*.json",
|
|
65
|
+
"vscode/cssl/*.js",
|
|
65
66
|
"vscode/cssl/syntaxes/*.json",
|
|
66
67
|
"vscode/cssl/snippets/*.json",
|
|
67
68
|
"vscode/cssl/images/*.png"
|
|
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
|
{includecpp-3.7.23 → includecpp-3.7.25}/includecpp/vscode/cssl/syntaxes/cssl.tmLanguage.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|