├── .gitignore
├── CHANGELOG.md
├── CodeRunner.sln
├── CodeRunner
├── .gitignore
├── AppInsightsClient.cs
├── CodeRunner.csproj
├── Key.snk
├── Properties
│ └── AssemblyInfo.cs
├── Resources
│ ├── logo.ico
│ ├── logo.png
│ └── run.png
├── RunCommand.cs
├── RunCommandPackage.cs
├── RunCommandPackage.vsct
├── VSPackage.resx
├── packages.config
├── source.extension.ico
└── source.extension.vsixmanifest
├── README.md
└── screenshot.png
/.gitignore:
--------------------------------------------------------------------------------
1 | packages
2 |
3 | # User files
4 | *.suo
5 | *.user
6 | *.sln.docstates
7 | .vs/
8 |
9 | # Build results
10 | [Dd]ebug/
11 | [Rr]elease/
12 | x64/
13 | [Bb]in/
14 | [Oo]bj/
15 |
16 | # MSTest test Results
17 | [Tt]est[Rr]esult*/
18 | [Bb]uild[Ll]og.*
19 |
20 | # NCrunch
21 | *.ncrunchsolution
22 | *.ncrunchproject
23 | _NCrunch_WebCompiler
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | ## 0.0.1 (2017-07-09)
2 | * Initial Release
--------------------------------------------------------------------------------
/CodeRunner.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.26228.4
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeRunner", "CodeRunner\CodeRunner.csproj", "{5B066CD4-E489-492B-B013-1B4164443511}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {5B066CD4-E489-492B-B013-1B4164443511}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {5B066CD4-E489-492B-B013-1B4164443511}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {5B066CD4-E489-492B-B013-1B4164443511}.Release|Any CPU.ActiveCfg = Release|Any CPU
17 | {5B066CD4-E489-492B-B013-1B4164443511}.Release|Any CPU.Build.0 = Release|Any CPU
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | EndGlobal
23 |
--------------------------------------------------------------------------------
/CodeRunner/.gitignore:
--------------------------------------------------------------------------------
1 | packages
2 |
3 | # User files
4 | *.suo
5 | *.user
6 | *.sln.docstates
7 | .vs/
8 |
9 | # Build results
10 | [Dd]ebug/
11 | [Rr]elease/
12 | x64/
13 | [Bb]in/
14 | [Oo]bj/
15 |
16 | # MSTest test Results
17 | [Tt]est[Rr]esult*/
18 | [Bb]uild[Ll]og.*
19 |
20 | # NCrunch
21 | *.ncrunchsolution
22 | *.ncrunchproject
23 | _NCrunch_WebCompiler
--------------------------------------------------------------------------------
/CodeRunner/AppInsightsClient.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using Microsoft.ApplicationInsights;
7 |
8 | namespace CodeRunner
9 | {
10 | static class AppInsightsClient
11 | {
12 | static readonly TelemetryClient telemetry;
13 |
14 | static AppInsightsClient()
15 | {
16 | telemetry = new TelemetryClient();
17 | telemetry.InstrumentationKey = "a30bcc73-ded9-46f2-b664-c6ed415bd393";
18 | }
19 |
20 | public static void trackEvent(string eventName)
21 | {
22 | telemetry.TrackEvent(eventName);
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/CodeRunner/CodeRunner.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 15.0
6 | $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
7 |
8 |
9 | true
10 |
11 |
12 | true
13 |
14 |
15 | Key.snk
16 |
17 |
18 |
19 | Debug
20 | AnyCPU
21 | 2.0
22 | {82b43b9b-a64c-4715-b499-d71e9ca2bd60};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
23 | {5B066CD4-E489-492B-B013-1B4164443511}
24 | Library
25 | Properties
26 | CodeRunner
27 | CodeRunner
28 | v4.6
29 | true
30 | true
31 | true
32 | true
33 | true
34 | false
35 |
36 |
37 | true
38 | full
39 | false
40 | bin\Debug\
41 | DEBUG;TRACE
42 | prompt
43 | 4
44 |
45 |
46 | pdbonly
47 | true
48 | bin\Release\
49 | TRACE
50 | prompt
51 | 4
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 | Menus.ctmenu
65 |
66 |
67 | Designer
68 |
69 |
70 |
71 |
72 | False
73 |
74 |
75 | False
76 |
77 |
78 | False
79 |
80 |
81 | False
82 |
83 |
84 | ..\packages\Microsoft.ApplicationInsights.2.4.0\lib\net46\Microsoft.ApplicationInsights.dll
85 |
86 |
87 |
88 | False
89 |
90 |
91 | ..\packages\Microsoft.VisualStudio.CoreUtility.15.0.26201\lib\net45\Microsoft.VisualStudio.CoreUtility.dll
92 | True
93 |
94 |
95 | ..\packages\Microsoft.VisualStudio.Imaging.15.0.26201\lib\net45\Microsoft.VisualStudio.Imaging.dll
96 | True
97 |
98 |
99 | ..\packages\Microsoft.VisualStudio.OLE.Interop.7.10.6070\lib\Microsoft.VisualStudio.OLE.Interop.dll
100 | True
101 |
102 |
103 | ..\packages\Microsoft.VisualStudio.Shell.15.0.15.0.26201\lib\Microsoft.VisualStudio.Shell.15.0.dll
104 | True
105 |
106 |
107 | ..\packages\Microsoft.VisualStudio.Shell.Framework.15.0.26201\lib\net45\Microsoft.VisualStudio.Shell.Framework.dll
108 | True
109 |
110 |
111 | ..\packages\Microsoft.VisualStudio.Shell.Interop.7.10.6071\lib\Microsoft.VisualStudio.Shell.Interop.dll
112 | True
113 |
114 |
115 | True
116 | ..\packages\Microsoft.VisualStudio.Shell.Interop.10.0.10.0.30319\lib\Microsoft.VisualStudio.Shell.Interop.10.0.dll
117 | True
118 |
119 |
120 | True
121 | ..\packages\Microsoft.VisualStudio.Shell.Interop.11.0.11.0.61030\lib\Microsoft.VisualStudio.Shell.Interop.11.0.dll
122 | True
123 |
124 |
125 | True
126 | ..\packages\Microsoft.VisualStudio.Shell.Interop.12.0.12.0.30110\lib\Microsoft.VisualStudio.Shell.Interop.12.0.dll
127 | True
128 |
129 |
130 | ..\packages\Microsoft.VisualStudio.Shell.Interop.8.0.8.0.50727\lib\Microsoft.VisualStudio.Shell.Interop.8.0.dll
131 | True
132 |
133 |
134 | ..\packages\Microsoft.VisualStudio.Shell.Interop.9.0.9.0.30729\lib\Microsoft.VisualStudio.Shell.Interop.9.0.dll
135 | True
136 |
137 |
138 | ..\packages\Microsoft.VisualStudio.TextManager.Interop.7.10.6070\lib\Microsoft.VisualStudio.TextManager.Interop.dll
139 | True
140 |
141 |
142 | ..\packages\Microsoft.VisualStudio.TextManager.Interop.8.0.8.0.50727\lib\Microsoft.VisualStudio.TextManager.Interop.8.0.dll
143 | True
144 |
145 |
146 | ..\packages\Microsoft.VisualStudio.Threading.15.0.240\lib\net45\Microsoft.VisualStudio.Threading.dll
147 | True
148 |
149 |
150 | ..\packages\Microsoft.VisualStudio.Utilities.15.0.26201\lib\net45\Microsoft.VisualStudio.Utilities.dll
151 | True
152 |
153 |
154 | ..\packages\Microsoft.VisualStudio.Validation.15.0.82\lib\net45\Microsoft.VisualStudio.Validation.dll
155 | True
156 |
157 |
158 | False
159 |
160 |
161 |
162 |
163 |
164 | ..\packages\System.Diagnostics.DiagnosticSource.4.4.0\lib\net46\System.Diagnostics.DiagnosticSource.dll
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 | true
173 | VSPackage
174 | Designer
175 |
176 |
177 |
178 |
179 |
180 |
181 | Always
182 | true
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 | This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
211 |
--------------------------------------------------------------------------------
/CodeRunner/Key.snk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/formulahendry/CodeRunnerVS/db4029c026a3fa0b0e36b7aa7728e42400e4797e/CodeRunner/Key.snk
--------------------------------------------------------------------------------
/CodeRunner/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("CodeRunner")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("CodeRunner")]
13 | [assembly: AssemblyCopyright("")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // Version information for an assembly consists of the following four values:
23 | //
24 | // Major Version
25 | // Minor Version
26 | // Build Number
27 | // Revision
28 | //
29 | // You can specify all the values or you can default the Build and Revision Numbers
30 | // by using the '*' as shown below:
31 | // [assembly: AssemblyVersion("1.0.*")]
32 | [assembly: AssemblyVersion("1.0.0.0")]
33 | [assembly: AssemblyFileVersion("1.0.0.0")]
34 |
--------------------------------------------------------------------------------
/CodeRunner/Resources/logo.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/formulahendry/CodeRunnerVS/db4029c026a3fa0b0e36b7aa7728e42400e4797e/CodeRunner/Resources/logo.ico
--------------------------------------------------------------------------------
/CodeRunner/Resources/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/formulahendry/CodeRunnerVS/db4029c026a3fa0b0e36b7aa7728e42400e4797e/CodeRunner/Resources/logo.png
--------------------------------------------------------------------------------
/CodeRunner/Resources/run.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/formulahendry/CodeRunnerVS/db4029c026a3fa0b0e36b7aa7728e42400e4797e/CodeRunner/Resources/run.png
--------------------------------------------------------------------------------
/CodeRunner/RunCommand.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) Company. All rights reserved.
4 | //
5 | //------------------------------------------------------------------------------
6 |
7 | using System;
8 | using System.Collections.Generic;
9 | using System.ComponentModel.Design;
10 | using System.Diagnostics;
11 | using System.Globalization;
12 | using System.IO;
13 | using EnvDTE;
14 | using EnvDTE80;
15 | using Microsoft.VisualStudio.Shell;
16 | using Microsoft.VisualStudio.Shell.Interop;
17 |
18 | namespace CodeRunner
19 | {
20 | ///
21 | /// Command handler
22 | ///
23 | internal sealed class RunCommand
24 | {
25 | ///
26 | /// Command ID.
27 | ///
28 | public const int CommandId = 0x0100;
29 |
30 | ///
31 | /// Command menu group (command set GUID).
32 | ///
33 | public static readonly Guid CommandSet = new Guid("b62d762c-0f40-4249-94cb-7a09ca719bda");
34 |
35 | ///
36 | /// VS Package that provides this command, not null.
37 | ///
38 | private readonly Package package;
39 |
40 | ///
41 | /// Initializes a new instance of the class.
42 | /// Adds our command handlers for menu (commands must exist in the command table file)
43 | ///
44 | /// Owner package, not null.
45 | private RunCommand(Package package)
46 | {
47 | if (package == null)
48 | {
49 | throw new ArgumentNullException("package");
50 | }
51 |
52 | this.package = package;
53 |
54 | OleMenuCommandService commandService = this.ServiceProvider.GetService(typeof(IMenuCommandService)) as OleMenuCommandService;
55 | if (commandService != null)
56 | {
57 | var menuCommandID = new CommandID(CommandSet, CommandId);
58 | var menuItem = new MenuCommand(this.Run, menuCommandID);
59 | commandService.AddCommand(menuItem);
60 | }
61 | }
62 |
63 | ///
64 | /// Gets the instance of the command.
65 | ///
66 | public static RunCommand Instance
67 | {
68 | get;
69 | private set;
70 | }
71 |
72 | ///
73 | /// Gets the service provider from the owner package.
74 | ///
75 | private IServiceProvider ServiceProvider
76 | {
77 | get
78 | {
79 | return this.package;
80 | }
81 | }
82 |
83 | ///
84 | /// Initializes the singleton instance of the command.
85 | ///
86 | /// Owner package, not null.
87 | public static void Initialize(Package package)
88 | {
89 | Instance = new RunCommand(package);
90 | }
91 |
92 | ///
93 | /// This function is the callback used to execute the command when the menu item is clicked.
94 | /// See the constructor to see how the menu item is associated with this function using
95 | /// OleMenuCommandService service and MenuCommand class.
96 | ///
97 | /// Event sender.
98 | /// Event args.
99 | private void Run(object sender, EventArgs e)
100 | {
101 | var dte = ServiceProvider.GetService(typeof(DTE)) as DTE2;
102 | string fileName = null;
103 |
104 | if (dte.ActiveWindow.Type == vsWindowType.vsWindowTypeDocument)
105 | {
106 | fileName = dte.ActiveDocument.FullName;
107 | }
108 | else if (dte.SelectedItems.Count == 1)
109 | {
110 | fileName = dte.SelectedItems?.Item(1)?.ProjectItem?.FileNames[0];
111 | }
112 |
113 | if (string.IsNullOrEmpty(fileName))
114 | return;
115 |
116 | string ext = Path.GetExtension(fileName);
117 |
118 | AppInsightsClient.trackEvent(ext);
119 |
120 | var extMapping = new Dictionary()
121 | {
122 | {".js", "node"},
123 | {".php", "php"},
124 | {".py", "python"},
125 | {".pl", "perl"},
126 | {".rb", "ruby"},
127 | {".go", "go run"},
128 | {".lua", "lua"},
129 | {".groovy", "groovy"},
130 | {".scala", "scala"},
131 | {".vbs", "cscript //Nologo"},
132 | {".ps1", "powershell -ExecutionPolicy ByPass -File"}
133 | };
134 |
135 | if (!extMapping.ContainsKey(ext))
136 | {
137 | VsShellUtilities.ShowMessageBox(
138 | this.ServiceProvider,
139 | $"The file type \"{ext}\" is not supported.",
140 | "File type not supported",
141 | OLEMSGICON.OLEMSGICON_INFO,
142 | OLEMSGBUTTON.OLEMSGBUTTON_OK,
143 | OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST);
144 | return;
145 | }
146 |
147 | var start = new ProcessStartInfo("cmd", $"/k {extMapping[ext]} {Path.GetFileName(fileName)}")
148 | {
149 | WorkingDirectory = Path.GetDirectoryName(fileName),
150 | UseShellExecute = false,
151 | CreateNoWindow = false,
152 | };
153 |
154 | using (var proc = System.Diagnostics.Process.Start(start))
155 | {
156 | proc.WaitForExit();
157 | }
158 | }
159 | }
160 | }
161 |
--------------------------------------------------------------------------------
/CodeRunner/RunCommandPackage.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) Company. All rights reserved.
4 | //
5 | //------------------------------------------------------------------------------
6 |
7 | using System;
8 | using System.ComponentModel.Design;
9 | using System.Diagnostics;
10 | using System.Diagnostics.CodeAnalysis;
11 | using System.Globalization;
12 | using System.Runtime.InteropServices;
13 | using Microsoft.VisualStudio;
14 | using Microsoft.VisualStudio.OLE.Interop;
15 | using Microsoft.VisualStudio.Shell;
16 | using Microsoft.VisualStudio.Shell.Interop;
17 | using Microsoft.Win32;
18 |
19 | namespace CodeRunner
20 | {
21 | ///
22 | /// This is the class that implements the package exposed by this assembly.
23 | ///
24 | ///
25 | ///
26 | /// The minimum requirement for a class to be considered a valid package for Visual Studio
27 | /// is to implement the IVsPackage interface and register itself with the shell.
28 | /// This package uses the helper classes defined inside the Managed Package Framework (MPF)
29 | /// to do it: it derives from the Package class that provides the implementation of the
30 | /// IVsPackage interface and uses the registration attributes defined in the framework to
31 | /// register itself and its components with the shell. These attributes tell the pkgdef creation
32 | /// utility what data to put into .pkgdef file.
33 | ///
34 | ///
35 | /// To get loaded into VS, the package must be referred by <Asset Type="Microsoft.VisualStudio.VsPackage" ...> in .vsixmanifest file.
36 | ///
37 | ///
38 | [PackageRegistration(UseManagedResourcesOnly = true)]
39 | [InstalledProductRegistration("#110", "#112", "1.0", IconResourceID = 400)] // Info on this package for Help/About
40 | [ProvideMenuResource("Menus.ctmenu", 1)]
41 | [Guid(RunCommandPackage.PackageGuidString)]
42 | [SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1650:ElementDocumentationMustBeSpelledCorrectly", Justification = "pkgdef, VS and vsixmanifest are valid VS terms")]
43 | public sealed class RunCommandPackage : Package
44 | {
45 | ///
46 | /// RunCommandPackage GUID string.
47 | ///
48 | public const string PackageGuidString = "c4a9522f-53d1-478b-9bd2-47d51e5c92be";
49 |
50 | ///
51 | /// Initializes a new instance of the class.
52 | ///
53 | public RunCommandPackage()
54 | {
55 | // Inside this method you can place any initialization code that does not require
56 | // any Visual Studio service because at this point the package object is created but
57 | // not sited yet inside Visual Studio environment. The place to do all the other
58 | // initialization is the Initialize method.
59 | }
60 |
61 | #region Package Members
62 |
63 | ///
64 | /// Initialization of the package; this method is called right after the package is sited, so this is the place
65 | /// where you can put all the initialization code that rely on services provided by VisualStudio.
66 | ///
67 | protected override void Initialize()
68 | {
69 | RunCommand.Initialize(this);
70 | base.Initialize();
71 | }
72 |
73 | #endregion
74 | }
75 | }
76 |
--------------------------------------------------------------------------------
/CodeRunner/RunCommandPackage.vsct:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
25 |
26 |
33 |
34 |
38 |
39 |
40 |
41 |
42 |
43 |
45 |
46 |
53 |
60 |
61 |
62 |
63 |
64 |
69 |
70 |
71 |
72 |
73 |
74 |
77 |
80 |
83 |
84 |
85 |
86 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
--------------------------------------------------------------------------------
/CodeRunner/VSPackage.resx:
--------------------------------------------------------------------------------
1 |
2 |
12 |
13 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 | text/microsoft-resx
120 |
121 |
122 | 2.0
123 |
124 |
125 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
126 |
127 |
128 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
129 |
130 |
131 |
132 | RunCommand Extension
133 |
134 |
135 | RunCommand Visual Studio Extension Detailed Info
136 |
137 |
138 | Resources\logo.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
139 |
140 |
--------------------------------------------------------------------------------
/CodeRunner/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/CodeRunner/source.extension.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/formulahendry/CodeRunnerVS/db4029c026a3fa0b0e36b7aa7728e42400e4797e/CodeRunner/source.extension.ico
--------------------------------------------------------------------------------
/CodeRunner/source.extension.vsixmanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Code Runner
6 | Run code for JavaScript, PHP, Python, Perl, Ruby, Go, Lua, Groovy, Scala, VBScript, PowerShell
7 | https://github.com/formulahendry/CodeRunnerVS
8 | Resources\logo.png
9 | Resources\logo.png
10 | Node, JavaScript, PHP, Python, Perl, Ruby, Go, Lua, Groovy, Scala, VBScript, PowerShell
11 |
12 |
13 |
14 |
17 |
18 |
19 | amd64
20 |
21 |
22 |
23 | amd64
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Code Runner for Visual Studio
2 |
3 | Run code for JavaScript, PHP, Python, Perl, Ruby, Go, Lua, Groovy, Scala, VBScript, PowerShell.
4 |
5 | ## Credits
6 |
7 | * [Code Runner for VS Code](https://github.com/formulahendry/vscode-code-runner)
8 | * [Node Executor](https://github.com/madskristensen/NodeExecutor)
--------------------------------------------------------------------------------
/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/formulahendry/CodeRunnerVS/db4029c026a3fa0b0e36b7aa7728e42400e4797e/screenshot.png
--------------------------------------------------------------------------------