Last active
August 29, 2015 14:20
-
-
Save whitlockjc/6179b8bf7e92a7b62a07 to your computer and use it in GitHub Desktop.
Better/Working version of TerminalHelper.scpt for Visual Studio Code for Mac
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- This file resides at /Applications/Visual Studio Code.app/Contents/Resources/app/client/vs/workbench/contrib/debug/bin/TerminalHelper.scpt | |
on run argv | |
set working_dir to missing value | |
set runtimeArgs to missing value | |
set runtimeName to missing value | |
set programArgs to missing value | |
set env_vars to "" | |
repeat with i from 1 to (count of argv) | |
set a to (item i of argv) | |
if a = "-w" then | |
set i to i + 1 | |
set working_dir to quoted form of (item i of argv) | |
else if a = "-r" then | |
set i to i + 1 | |
set runtime to quoted form of (item i of argv) | |
else if a = "-ra" then | |
set i to i + 1 | |
set runtimeArgs to (item i of argv) | |
else if a = "-rn" then | |
set i to i + 1 | |
set runtimeName to (item i of argv) | |
else if a = "-p" then | |
set i to i + 1 | |
set program to quoted form of (item i of argv) | |
else if a = "-pa" then | |
set i to i + 1 | |
set programArgs to (item i of argv) | |
else if a = "-e" then | |
set i to i + 1 | |
set env_vars to env_vars & " " & quoted form of (item i of argv) | |
end if | |
end repeat | |
set cmd to "" | |
if working_dir ≠ missing value then | |
set cmd to "cd " & working_dir & "; " | |
end if | |
if env_vars ≠ "" then | |
set cmd to cmd & "env" & env_vars | |
end if | |
set cmd to cmd & " " & runtime | |
if runtimeArgs ≠ missing value then | |
set cmd to cmd & " " & runtimeArgs | |
end if | |
set cmd to cmd & " " & program | |
if programArgs ≠ missing value then | |
set cmd to cmd & " " & programArgs | |
end if | |
tell application "Terminal" | |
activate | |
set targetWindow to front window -- Default to the front window | |
set targetTab to selected tab of targetWindow -- Default to the current tab | |
if targetWindow ≠ null then | |
-- Create a new tab if the current window is busy | |
if targetTab is busy then | |
-- Delay required if/when you have to switch to a fullscreen Terminal.app instance since the new tab command will not fire in Terminal.app | |
delay 0.5 | |
set tabCount to count of every tab in targetWindow | |
-- Create a new tab | |
tell application "System Events" to keystroke "t" using command down | |
-- Wait for the new tab to be created | |
repeat while (count of every tab in targetWindow) = tabCount | |
delay 0.1 | |
end repeat | |
set targetTab to selected tab of targetWindow | |
end if | |
do script cmd in targetTab | |
else | |
set targetWindow to (do script cmd) | |
end if | |
set dev to tty of targetWindow | |
if runtimeName ≠ missing value then | |
-- find the "process" that runs under the given tty and remember its process id | |
set pid to "" | |
repeat 10 times | |
set pid to do shell script "ps -c -t " & dev & " | awk '$4==\"" & runtimeName & "\" { print $1 }'" | |
if pid ≠ "" then | |
exit repeat | |
end if | |
delay 0.5 | |
end repeat | |
if pid ≠ "" then | |
do shell script "echo " & pid | |
end if | |
end if | |
end tell | |
end run |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Major props! I had the same issue and I swapped this out and I am now able to debug. To improve discoverability for this gist, the exact error I was seeing in the app was "could not launch 'node' in debug mode". Hopefully MS gets this fixed for the next release.
EDIT: I should note for any others coming across this page, I had to replace all of the 'not equals' signs with 'is not equal to', as they didn't come over nicely from the gist.
EDIT: Issue logged https://code.visualstudio.com/issues/detail/16834