diff --git a/VSExtension1/Command1.cs b/VSExtension1/Command1.cs
index 44a4c30..6d7f640 100644
--- a/VSExtension1/Command1.cs
+++ b/VSExtension1/Command1.cs
@@ -1,8 +1,10 @@
-using System.Diagnostics;
using Microsoft;
+using Microsoft.ClearScript;
using Microsoft.VisualStudio.Extensibility;
using Microsoft.VisualStudio.Extensibility.Commands;
using Microsoft.VisualStudio.Extensibility.Shell;
+using System.Diagnostics;
+
namespace VSExtension1
{
@@ -14,15 +16,19 @@ internal class Command1 : Command
{
private readonly TraceSource logger;
+ private readonly ScriptEngine _scriptEngine;
+
///
/// Initializes a new instance of the class.
///
/// Trace source instance to utilize.
- public Command1(TraceSource traceSource)
+ public Command1(VisualStudioExtensibility extensibility, TraceSource traceSource, ScriptEngine scriptEngine) :
+ base(extensibility)
{
// This optional TraceSource can be used for logging in the command. You can use dependency injection to access
// other services here as well.
this.logger = Requires.NotNull(traceSource, nameof(traceSource));
+ this._scriptEngine = Requires.NotNull(scriptEngine);
}
///
@@ -45,6 +51,15 @@ public override Task InitializeAsync(CancellationToken cancellationToken)
public override async Task ExecuteCommandAsync(IClientContext context, CancellationToken cancellationToken)
{
await this.Extensibility.Shell().ShowPromptAsync("Hello from an extension!", PromptOptions.OK, cancellationToken);
+ try
+ {
+ this._scriptEngine.Evaluate("command1()");
+ }
+ catch (ScriptEngineException e)
+ {
+ await this.Extensibility.Shell().ShowPromptAsync(e.Message, PromptOptions.OK, cancellationToken);
+ throw;
+ }
}
}
}
diff --git a/VSExtension1/scripts/__init__.js b/VSExtension1/scripts/__init__.js
index 46f4328..21cbee6 100644
--- a/VSExtension1/scripts/__init__.js
+++ b/VSExtension1/scripts/__init__.js
@@ -3,3 +3,7 @@
// This file will be used to initialize the ScriptEngine.
extension.Output.WriteLine("Hello from __init__.js")
+
+globalThis.command1 = function () {
+ extension.Output.WriteLine("command1 called")
+}