tradingai_api API 参考

TradingAIContext 提供的 16 类 API 完整方法签名、参数、返回值及示例。

TradingAIFileSystem

文件系统操作,需在 plugin.yamlpermissions.fileSystem 中声明路径。

方法签名返回值
readStringreadString(String path)Future<String>
writeStringwriteString(String path, String content)Future<void>
existsexists(String path)Future<bool>
listlist(String path)Future<List<String>>
downloadFiledownloadFile(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 中声明域名。

方法签名返回值
getget(String url, {Map<String, String>? headers})Future<HttpResponse>
postpost(String url, {headers?, Object? body})Future<HttpResponse>
putput(String url, {headers?, Object? body})Future<HttpResponse>
deletedelete(String url, {headers?})Future<HttpResponse>
patchpatch(String url, {headers?, Object? body})Future<HttpResponse>
headhead(String url, {headers?})Future<HttpResponse>

HttpResponse 包含 statusCodebodyheaders

TradingAIShell

Shell 命令执行,需在 permissions.shell 中声明允许的命令。

方法签名返回值
runrun(String command, List<String> arguments)Future<ProcessResult>
spawnspawn(String command, List<String> arguments)Future<int> (pid)
writeStdinwriteStdin(int pid, String text)Future<void>
killkill(int pid)Future<bool>
onStdoutonStdout(void Function(int pid, String data) callback)void
onStderronStderr(void Function(int pid, String data) callback)void
onExitonExit(void Function(int pid, int exitCode) callback)void

TradingAIWindow

方法签名返回值
showMessageshowMessage(String message, {MessageType type = info})Future<void>
showQuickPickshowQuickPick(List<QuickPickItem> items, {placeholder?, matchOnDescription?, matchOnDetail?, position?})Future<QuickPickItem?>
showInputBoxshowInputBox({prompt?, value?, placeHolder?, password?, title?})Future<String?>
createOutputChannelcreateOutputChannel(String name, {int? maxEntries})Future<TradingAIOutputChannel>
createTerminalcreateTerminal({name?, shellPath?, shellArgs?})Future<TradingAITerminal>
openUrlopenUrl(String url)Future<bool>
createWebviewPanelcreateWebviewPanel(String viewType, String title, {options?})Future<TradingAIWebviewPanel>

TradingAIEditor

方法签名返回值
getActiveDocumentUrigetActiveDocumentUri()Future<String?>
insertTextinsertText(String text)Future<void>
replaceTextreplaceText({startLine, startColumn, endLine, endColumn, newText})Future<void>
getSelectionsgetSelections()Future<List<Map<String, dynamic>>>
setSelectionssetSelections(List<Map<String, dynamic>> selections)Future<void>
getSelectedTextgetSelectedText()Future<String?>
replaceSelectionreplaceSelection(String text)Future<void>
onDidChangeSelectionsonDidChangeSelections(callback)void
onDidChangeActiveDocumentonDidChangeActiveDocument(callback)void

TradingAIWorkspace

方法签名返回值
getConfigurationgetConfiguration(String section)Future<Object?>
onDidOpenTextDocumentonDidOpenTextDocument(callback)void
onDidCloseTextDocumentonDidCloseTextDocument(callback)void
onDidChangeTextDocumentonDidChangeTextDocument(callback)void
onDidChangeConfigurationonDidChangeConfiguration(callback)void
onDidSaveTextDocumentonDidSaveTextDocument(callback)void

TradingAICommands

方法签名返回值
registerCommandregisterCommand({id, title, category?, callback})Future<void>

id 需唯一,如 myPlugin.formatCodecallback 接收可选 Map<String, dynamic>? args

TradingAIStatusBar

方法签名返回值
createItemcreateItem({id, text, tooltip?, command?, color?, iconName?, iconPath?, alignment?, priority?})Future<void>
updateItemupdateItem(String id, {text?, tooltip?, ...})Future<void>
disposeItemdisposeItem(String id)Future<void>
showshow(String id)Future<void>
hidehide(String id)Future<void>

TradingAIToolbar

方法签名返回值
registerItemregisterItem({id, icon, iconPath?, label?, tooltip?, alignment?, priority?})Future<void>
unregisterItemunregisterItem(String id)Future<void>
onTaponTap(void Function(String id, Map<String, int> position) callback)void

TradingAIExtensions

方法签名返回值
getExtensiongetExtension(String extensionId)Future<ExtensionInfo?>
onDidActivateonDidActivate(void Function(String extensionId) callback)void

TradingAIMarket

方法签名返回值
subscribesubscribe(String symbol)Future<void>
unsubscribeunsubscribe(String symbol)Future<void>
getQuotegetQuote(String symbol)Future<MarketQuote>
onQuoteUpdateonQuoteUpdate(void Function(MarketQuote quote) callback)void

MarketQuote 包含 symbolpricechangechangePercentvolumetimestamp

TradingAIChart

方法签名返回值
addIndicatoraddIndicator(IndicatorConfig config)Future<void>
removeIndicatorremoveIndicator(String indicatorId)Future<void>
addDrawingaddDrawing(DrawingConfig config)Future<void>

TradingAIAlerts

方法签名返回值
createcreate(AlertCondition condition)Future<String>
listlist()Future<List<AlertInfo>>
deletedelete(String alertId)Future<void>
onTriggeredonTriggered(void Function(AlertInfo alert) callback)void

TradingAIPortfolio

方法签名返回值
getPositionsgetPositions()Future<List<Position>>
getBalancegetBalance()Future<Map<String, dynamic>>

TradingAISduiPanel

方法签名返回值
createPanelcreatePanel({id, title, tree, location = 'panel'})Future<String>
updatePanelupdatePanel(String id, Map<String, dynamic> tree)Future<void>
disposePaneldisposePanel(String id)Future<void>
onActiononAction(void Function(panelId, actionId, data?) callback)void

location 可选:sidebarpaneldialogtree 为 Stac JSON 组件树。