tradingai_api API 参考
TradingAIContext 提供的 16 类 API 完整方法签名、参数、返回值及示例。
TradingAIFileSystem
文件系统操作,需在 plugin.yaml 的 permissions.fileSystem 中声明路径。
| 方法 | 签名 | 返回值 |
| readString | readString(String path) | Future<String> |
| writeString | writeString(String path, String content) | Future<void> |
| exists | exists(String path) | Future<bool> |
| list | list(String path) | Future<List<String>> |
| downloadFile | downloadFile(String url, String destinationPath) | Future<String> |
dart
final content = await context.fs.readString('${workspace}/data.json');
await context.fs.writeString('${workspace}/out.txt', content);
final files = await context.fs.list('${workspace}/logs');
TradingAIHttp
HTTP 客户端,需在 permissions.network 中声明域名。
| 方法 | 签名 | 返回值 |
| get | get(String url, {Map<String, String>? headers}) | Future<HttpResponse> |
| post | post(String url, {headers?, Object? body}) | Future<HttpResponse> |
| put | put(String url, {headers?, Object? body}) | Future<HttpResponse> |
| delete | delete(String url, {headers?}) | Future<HttpResponse> |
| patch | patch(String url, {headers?, Object? body}) | Future<HttpResponse> |
| head | head(String url, {headers?}) | Future<HttpResponse> |
HttpResponse 包含 statusCode、body、headers。
TradingAIShell
Shell 命令执行,需在 permissions.shell 中声明允许的命令。
| 方法 | 签名 | 返回值 |
| run | run(String command, List<String> arguments) | Future<ProcessResult> |
| spawn | spawn(String command, List<String> arguments) | Future<int> (pid) |
| writeStdin | writeStdin(int pid, String text) | Future<void> |
| kill | kill(int pid) | Future<bool> |
| onStdout | onStdout(void Function(int pid, String data) callback) | void |
| onStderr | onStderr(void Function(int pid, String data) callback) | void |
| onExit | onExit(void Function(int pid, int exitCode) callback) | void |
TradingAIWindow
| 方法 | 签名 | 返回值 |
| showMessage | showMessage(String message, {MessageType type = info}) | Future<void> |
| showQuickPick | showQuickPick(List<QuickPickItem> items, {placeholder?, matchOnDescription?, matchOnDetail?, position?}) | Future<QuickPickItem?> |
| showInputBox | showInputBox({prompt?, value?, placeHolder?, password?, title?}) | Future<String?> |
| createOutputChannel | createOutputChannel(String name, {int? maxEntries}) | Future<TradingAIOutputChannel> |
| createTerminal | createTerminal({name?, shellPath?, shellArgs?}) | Future<TradingAITerminal> |
| openUrl | openUrl(String url) | Future<bool> |
| createWebviewPanel | createWebviewPanel(String viewType, String title, {options?}) | Future<TradingAIWebviewPanel> |
TradingAIEditor
| 方法 | 签名 | 返回值 |
| getActiveDocumentUri | getActiveDocumentUri() | Future<String?> |
| insertText | insertText(String text) | Future<void> |
| replaceText | replaceText({startLine, startColumn, endLine, endColumn, newText}) | Future<void> |
| getSelections | getSelections() | Future<List<Map<String, dynamic>>> |
| setSelections | setSelections(List<Map<String, dynamic>> selections) | Future<void> |
| getSelectedText | getSelectedText() | Future<String?> |
| replaceSelection | replaceSelection(String text) | Future<void> |
| onDidChangeSelections | onDidChangeSelections(callback) | void |
| onDidChangeActiveDocument | onDidChangeActiveDocument(callback) | void |
TradingAIWorkspace
| 方法 | 签名 | 返回值 |
| getConfiguration | getConfiguration(String section) | Future<Object?> |
| onDidOpenTextDocument | onDidOpenTextDocument(callback) | void |
| onDidCloseTextDocument | onDidCloseTextDocument(callback) | void |
| onDidChangeTextDocument | onDidChangeTextDocument(callback) | void |
| onDidChangeConfiguration | onDidChangeConfiguration(callback) | void |
| onDidSaveTextDocument | onDidSaveTextDocument(callback) | void |
TradingAICommands
| 方法 | 签名 | 返回值 |
| registerCommand | registerCommand({id, title, category?, callback}) | Future<void> |
id 需唯一,如 myPlugin.formatCode;callback 接收可选 Map<String, dynamic>? args。
TradingAIStatusBar
| 方法 | 签名 | 返回值 |
| createItem | createItem({id, text, tooltip?, command?, color?, iconName?, iconPath?, alignment?, priority?}) | Future<void> |
| updateItem | updateItem(String id, {text?, tooltip?, ...}) | Future<void> |
| disposeItem | disposeItem(String id) | Future<void> |
| show | show(String id) | Future<void> |
| hide | hide(String id) | Future<void> |
| 方法 | 签名 | 返回值 |
| registerItem | registerItem({id, icon, iconPath?, label?, tooltip?, alignment?, priority?}) | Future<void> |
| unregisterItem | unregisterItem(String id) | Future<void> |
| onTap | onTap(void Function(String id, Map<String, int> position) callback) | void |
TradingAIExtensions
| 方法 | 签名 | 返回值 |
| getExtension | getExtension(String extensionId) | Future<ExtensionInfo?> |
| onDidActivate | onDidActivate(void Function(String extensionId) callback) | void |
TradingAIMarket
| 方法 | 签名 | 返回值 |
| subscribe | subscribe(String symbol) | Future<void> |
| unsubscribe | unsubscribe(String symbol) | Future<void> |
| getQuote | getQuote(String symbol) | Future<MarketQuote> |
| onQuoteUpdate | onQuoteUpdate(void Function(MarketQuote quote) callback) | void |
MarketQuote 包含 symbol、price、change、changePercent、volume、timestamp。
TradingAIChart
| 方法 | 签名 | 返回值 |
| addIndicator | addIndicator(IndicatorConfig config) | Future<void> |
| removeIndicator | removeIndicator(String indicatorId) | Future<void> |
| addDrawing | addDrawing(DrawingConfig config) | Future<void> |
TradingAIAlerts
| 方法 | 签名 | 返回值 |
| create | create(AlertCondition condition) | Future<String> |
| list | list() | Future<List<AlertInfo>> |
| delete | delete(String alertId) | Future<void> |
| onTriggered | onTriggered(void Function(AlertInfo alert) callback) | void |
TradingAIPortfolio
| 方法 | 签名 | 返回值 |
| getPositions | getPositions() | Future<List<Position>> |
| getBalance | getBalance() | Future<Map<String, dynamic>> |
TradingAISduiPanel
| 方法 | 签名 | 返回值 |
| createPanel | createPanel({id, title, tree, location = 'panel'}) | Future<String> |
| updatePanel | updatePanel(String id, Map<String, dynamic> tree) | Future<void> |
| disposePanel | disposePanel(String id) | Future<void> |
| onAction | onAction(void Function(panelId, actionId, data?) callback) | void |
location 可选:sidebar、panel、dialog。tree 为 Stac JSON 组件树。