Skip to content

Commit 8b934a1

Browse files
authored
refactor: replace chat participant with skill (#906)
* Clean up copilot * Contribute basic Septic skill * Restructure skill * Add septic objects examples to skill * Add layout of typical configuration sections to skill * Add examples of how to use scg/jinja to skill * Add statemachin example to skill
1 parent e0fe1fb commit 8b934a1

118 files changed

Lines changed: 3174 additions & 1313 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/update-septic-docs-pr.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,18 @@ jobs:
4444
fi
4545
echo "REF=$ref" >> $GITHUB_ENV
4646
47+
- name: Update skill object references
48+
if: ${{ steps.checkfiles.outputs.changed != 0 && env.REF == 'latest' }}
49+
run: python scripts/generate_examples.py latest
50+
4751
- name: Create Pull Request
4852
uses: peter-evans/create-pull-request@v8
4953
if: ${{ steps.checkfiles.outputs.changed != 0 }}
5054
with:
5155
add-paths: |
5256
packages/septic/public/*
5357
packages/extension/package.json
58+
packages/extension/skills/writing-septic-config/objects/*
5459
labels: "documentation"
5560
branch: "septic-documentation-${{ env.REF }}"
5661
title: "docs: update Septic documentation for ${{ env.REF }}"

packages/extension/README.md

Lines changed: 66 additions & 73 deletions
Large diffs are not rendered by default.

packages/extension/client/src/chatParticipant.ts

Lines changed: 0 additions & 152 deletions
This file was deleted.

packages/extension/client/src/commands.ts

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import * as vscode from "vscode";
77
import * as protocol from "./protocol";
88
import * as path from "path";
99
import { LanguageClient } from "vscode-languageclient/node";
10-
import { generateCalc } from "./lm";
1110
import {
1211
ApplicationTreeItem,
1312
ApplicationTreeItemType,
@@ -385,22 +384,6 @@ export function registerCommandMakeConfig() {
385384
);
386385
}
387386

388-
export function registerCommandGenerateCalc(
389-
context: vscode.ExtensionContext,
390-
client: LanguageClient,
391-
) {
392-
vscode.commands.registerCommand(
393-
"septic.generateCalc",
394-
async (
395-
description: string,
396-
start: vscode.Position,
397-
end: vscode.Position,
398-
) => {
399-
generateCalc(client, description, start, end);
400-
},
401-
);
402-
}
403-
404387
export function registerCommandPlotModel() {
405388
vscode.commands.registerCommand(
406389
"septic.plotModel",
@@ -430,7 +413,7 @@ export function registerCommandGetFunctions(
430413
});
431414
if (!functions || !functions.length) {
432415
vscode.window.showInformationMessage(
433-
"Functions found in this file.",
416+
"No functions found in this file.",
434417
);
435418
return;
436419
}
@@ -471,7 +454,6 @@ export function registerCommands(
471454
registerCommandDetectCycles(context, client);
472455
registerCommandCompareCnfg(context, client);
473456
registerCommandOpcTagList(context, client);
474-
registerCommandGenerateCalc(context, client);
475457
registerCommandAddTemplate(applicationTreeProvider);
476458
registerCommandRemoveTemplate(applicationTreeProvider);
477459
registerCommandRenameTemplate(applicationTreeProvider);

packages/extension/client/src/extension.ts

Lines changed: 39 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,20 @@ import {
1111
ServerOptions,
1212
TransportKind,
1313
} from "vscode-languageclient/node";
14-
import { registerCommands } from './commands';
14+
import { registerCommands } from "./commands";
1515
import { registerRequestHandlers } from "./requests";
16-
import { registerChatTools } from './tools';
17-
import { registerSepticChatParticipant } from './chatParticipant';
18-
import { ApplicationTreeProvider, JinjaVariablesTreeProvider, SepticFunctionTreeProvider } from './treeProviders';
19-
import { SepticApplicationManager } from './applicationManager';
16+
import { registerChatTools } from "./tools";
17+
import {
18+
ApplicationTreeProvider,
19+
JinjaVariablesTreeProvider,
20+
SepticFunctionTreeProvider,
21+
} from "./treeProviders";
22+
import { SepticApplicationManager } from "./applicationManager";
2023

2124
let client: LanguageClient;
2225

23-
24-
2526
export function activate(context: vscode.ExtensionContext) {
26-
const serverModule = context.asAbsolutePath(
27-
path.join("dist", "server.js")
28-
);
27+
const serverModule = context.asAbsolutePath(path.join("dist", "server.js"));
2928

3029
const debugOptions = { execArgv: ["--nolazy", "--inspect=6009"] };
3130
const serverOptions: ServerOptions = {
@@ -51,32 +50,51 @@ export function activate(context: vscode.ExtensionContext) {
5150
"septic",
5251
"Septic",
5352
serverOptions,
54-
clientOptions
53+
clientOptions,
5554
);
5655
const appManager = new SepticApplicationManager(context);
5756
const applicationsTreeProvider = new ApplicationTreeProvider(appManager);
58-
const jinjaVariablesTreeProvider = new JinjaVariablesTreeProvider(appManager);
57+
const jinjaVariablesTreeProvider = new JinjaVariablesTreeProvider(
58+
appManager,
59+
);
5960
const septicFunctionTreeProvider = new SepticFunctionTreeProvider(client);
60-
vscode.window.registerTreeDataProvider('septic-applications', applicationsTreeProvider);
61-
vscode.window.registerTreeDataProvider('septic-scg-variables', jinjaVariablesTreeProvider);
62-
vscode.window.registerTreeDataProvider('septic-functions', septicFunctionTreeProvider);
61+
vscode.window.registerTreeDataProvider(
62+
"septic-applications",
63+
applicationsTreeProvider,
64+
);
65+
vscode.window.registerTreeDataProvider(
66+
"septic-scg-variables",
67+
jinjaVariablesTreeProvider,
68+
);
69+
vscode.window.registerTreeDataProvider(
70+
"septic-functions",
71+
septicFunctionTreeProvider,
72+
);
6373
vscode.window.onDidChangeActiveTextEditor((e) => {
6474
if (!e) {
6575
return;
6676
}
6777
applicationsTreeProvider.refresh();
6878
jinjaVariablesTreeProvider.refresh();
6979
septicFunctionTreeProvider.refresh();
70-
})
80+
});
7181
vscode.workspace.onDidSaveTextDocument((e) => {
72-
if (path.extname(e.fileName) === '.yaml' || path.extname(e.fileName) === '.yml') {
82+
if (
83+
path.extname(e.fileName) === ".yaml" ||
84+
path.extname(e.fileName) === ".yml"
85+
) {
7386
appManager.updateScgConfig(e.fileName);
7487
}
75-
})
76-
registerChatTools(context, client)
77-
registerCommands(context, client, applicationsTreeProvider, appManager, septicFunctionTreeProvider);
88+
});
89+
registerChatTools(context, client);
90+
registerCommands(
91+
context,
92+
client,
93+
applicationsTreeProvider,
94+
appManager,
95+
septicFunctionTreeProvider,
96+
);
7897
registerRequestHandlers(client);
79-
registerSepticChatParticipant(context, client)
8098
client.start();
8199
}
82100

0 commit comments

Comments
 (0)