@@ -17,10 +17,8 @@ import {
1717 ConfigurationTarget ,
1818 EventEmitter ,
1919 ExtensionContext ,
20- Range ,
2120 TextDocumentContentProvider ,
2221 Uri ,
23- WorkspaceEdit ,
2422 commands ,
2523 extensions ,
2624 languages ,
@@ -93,7 +91,6 @@ import { DataSourceEditorProvider } from "./services/dataSourceEditorProvider";
9391import {
9492 FileTreeItem ,
9593 WorkspaceTreeProvider ,
96- addWorkspaceFile ,
9794} from "./services/workspaceTreeProvider" ;
9895import {
9996 ConnectionLensProvider ,
@@ -102,6 +99,7 @@ import {
10299 importOldDSFiles ,
103100 pickConnection ,
104101 runActiveEditor ,
102+ setServerForUri ,
105103} from "./commands/workspaceCommand" ;
106104import { createDefaultDataSourceFile } from "./models/dataSource" ;
107105import { connectBuildTools , lintCommand } from "./commands/buildToolsCommand" ;
@@ -116,13 +114,19 @@ import {
116114 renameLabel ,
117115 setLabelColor ,
118116} from "./utils/connLabel" ;
119- import { activateTextDocument } from "./utils/workspace" ;
117+ import {
118+ activateTextDocument ,
119+ addWorkspaceFile ,
120+ openWith ,
121+ setUriContent ,
122+ } from "./utils/workspace" ;
120123import {
121124 InsightDetails ,
122125 Insights ,
123126 Server ,
124127 ServerDetails ,
125128} from "./models/connectionsModels" ;
129+ import { ChartEditorProvider } from "./services/chartEditorProvider" ;
126130
127131let client : LanguageClient ;
128132
@@ -472,26 +476,19 @@ export async function activate(context: ExtensionContext) {
472476 "kdb.createDataSource" ,
473477 async ( item : FileTreeItem ) => {
474478 if ( hasWorkspaceOrShowOption ( "adding datasources" ) ) {
475- const uri = await addWorkspaceFile ( item , "datasource" , ".kdb.json" ) ;
476-
477- if ( uri ) {
478- const edit = new WorkspaceEdit ( ) ;
479-
480- edit . replace (
481- uri ,
482- new Range ( 0 , 0 , 1 , 0 ) ,
483- JSON . stringify ( createDefaultDataSourceFile ( ) , null , 2 ) ,
484- ) ;
485-
486- workspace . applyEdit ( edit ) ;
487-
488- await commands . executeCommand (
489- "vscode.openWith" ,
490- uri ,
491- DataSourceEditorProvider . viewType ,
492- ) ;
493- await commands . executeCommand ( "workbench.action.files.save" , uri ) ;
494- }
479+ const uri = await addWorkspaceFile (
480+ item ? item . resourceUri : undefined ,
481+ "datasource" ,
482+ ".kdb.json" ,
483+ ) ;
484+ await workspace . openTextDocument ( uri ) ;
485+ await setUriContent (
486+ uri ,
487+ JSON . stringify ( createDefaultDataSourceFile ( ) , null , 2 ) ,
488+ ) ;
489+ await openWith ( uri , DataSourceEditorProvider . viewType ) ;
490+ await commands . executeCommand ( "workbench.action.files.save" , uri ) ;
491+ await setServerForUri ( uri , undefined ) ;
495492 }
496493 } ,
497494 ) ,
@@ -502,23 +499,31 @@ export async function activate(context: ExtensionContext) {
502499 "kdb.createScratchpad" ,
503500 async ( item : FileTreeItem ) => {
504501 if ( hasWorkspaceOrShowOption ( "adding workbooks" ) ) {
505- const uri = await addWorkspaceFile ( item , "workbook" , ".kdb.q" ) ;
506- if ( uri ) {
507- await window . showTextDocument ( uri ) ;
508- await commands . executeCommand ( "workbench.action.files.save" , uri ) ;
509- }
502+ const uri = await addWorkspaceFile (
503+ item ? item . resourceUri : undefined ,
504+ "workbook" ,
505+ ".kdb.q" ,
506+ ) ;
507+ await workspace . openTextDocument ( uri ) ;
508+ await window . showTextDocument ( uri ) ;
509+ await commands . executeCommand ( "workbench.action.files.save" , uri ) ;
510+ await setServerForUri ( uri , undefined ) ;
510511 }
511512 } ,
512513 ) ,
513514 commands . registerCommand (
514515 "kdb.createPythonScratchpad" ,
515516 async ( item : FileTreeItem ) => {
516517 if ( hasWorkspaceOrShowOption ( "adding workbooks" ) ) {
517- const uri = await addWorkspaceFile ( item , "workbook" , ".kdb.py" ) ;
518- if ( uri ) {
519- await window . showTextDocument ( uri ) ;
520- await commands . executeCommand ( "workbench.action.files.save" , uri ) ;
521- }
518+ const uri = await addWorkspaceFile (
519+ item ? item . resourceUri : undefined ,
520+ "workbook" ,
521+ ".kdb.py" ,
522+ ) ;
523+ await workspace . openTextDocument ( uri ) ;
524+ await window . showTextDocument ( uri ) ;
525+ await commands . executeCommand ( "workbench.action.files.save" , uri ) ;
526+ await setServerForUri ( uri , undefined ) ;
522527 }
523528 } ,
524529 ) ,
@@ -534,11 +539,7 @@ export async function activate(context: ExtensionContext) {
534539 commands . registerCommand ( "kdb.renameFile" , async ( item : FileTreeItem ) => {
535540 if ( item && item . resourceUri ) {
536541 if ( item . resourceUri . path . endsWith ( ".kdb.json" ) ) {
537- await commands . executeCommand (
538- "vscode.openWith" ,
539- item . resourceUri ,
540- DataSourceEditorProvider . viewType ,
541- ) ;
542+ await openWith ( item . resourceUri , DataSourceEditorProvider . viewType ) ;
542543 } else {
543544 const document = await workspace . openTextDocument ( item . resourceUri ) ;
544545 await window . showTextDocument ( document ) ;
@@ -550,11 +551,7 @@ export async function activate(context: ExtensionContext) {
550551 commands . registerCommand ( "kdb.deleteFile" , async ( item : FileTreeItem ) => {
551552 if ( item && item . resourceUri ) {
552553 if ( item . resourceUri . path . endsWith ( ".kdb.json" ) ) {
553- await commands . executeCommand (
554- "vscode.openWith" ,
555- item . resourceUri ,
556- DataSourceEditorProvider . viewType ,
557- ) ;
554+ await openWith ( item . resourceUri , DataSourceEditorProvider . viewType ) ;
558555 } else {
559556 const document = await workspace . openTextDocument ( item . resourceUri ) ;
560557 await window . showTextDocument ( document ) ;
@@ -565,6 +562,7 @@ export async function activate(context: ExtensionContext) {
565562 } ) ,
566563
567564 DataSourceEditorProvider . register ( context ) ,
565+ ChartEditorProvider . register ( context ) ,
568566
569567 languages . registerCodeLensProvider (
570568 { pattern : "**/*.kdb.{q,py}" } ,
0 commit comments