-
Notifications
You must be signed in to change notification settings - Fork 9.1k
Microsoft GDK automatic command line profile generation #12546
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Microsoft GDK automatic command line profile generation #12546
Conversation
…/memcpy-rand-rand-rand/terminal into gdk_prompt_gen_using_vsgensystem
|
|
@check-spelling-bot ReportUnrecognized words, please review:
Previously acknowledged words that are now absentazurewebsites cxcy debolden deconstructed devicefamily guardxfg LLVM MSDL ned NOWAIT pgorepro pgort PGU Timeline timelines unintense WResult xfgTo accept these unrecognized words as correct (and remove the previously acknowledged and now absent words), run the following commands... in a clone of the git@github.com:memcpy-rand-rand-rand/terminal.git repository ✏️ Contributor please read thisBy default the command suggestion will generate a file named based on your commit. That's generally ok as long as you add the file to your commit. Someone can reorganize it later.
If the listed items are:
See the 🔬 You can test your commits without appending to a PR by creating a new branch with that extra change and pushing it to your fork. The check-spelling action will run in response to your push -- it doesn't require an open pull request. By using such a branch, you can limit the number of typos your peers see you make. 😉 🗜️ If you see a bunch of garbageIf it relates to a ... well-formed patternSee if there's a pattern that would match it. If not, try writing one and adding it to a Patterns are Perl 5 Regular Expressions - you can test yours before committing to verify it will match your lines. Note that patterns can't match multiline strings. binary-ish stringPlease add a file path to the File paths are Perl 5 Regular Expressions - you can test yours before committing to verify it will match your files.
|
|
Discussion results: Yea we're cool with this, as long as this does the same thing as the main VS generator where the profiles for older versions of VS are marked hidden:true by default, so we don't add a bunch for all of people's old versions of VS laying around. (Admittedly, haven't reviewed yet. Will likely be after 1.14 goes out before we can give this eyes, sorry 😕) |
|
Discussed more with the GDK folks offline - when they have more bandwidth, they're keen to ship their own fragments to add Terminal profiles. |
Automatically detect Visual Studio command prompts from the Microsoft Game Development Kit (GDK)
The Microsoft GDK (https://aka.ms/gdkinfo) installs shortcuts to open Visual Studio command prompts which when run also set some GDK environment variables. These are available in the start menu.
This proposed change will allow Terminal to detect those shortcuts and add them to the list of available shells automatically.
Game developers who use Terminal with the GDK installed would have the GDK command prompts available at their fingertips.
DRAFT PR opened for discussion
PR Checklist
Detailed Description of the Pull Request / Additional comments
This change piggy-backs on the VisualStudioGenerator to detect the installed VS versions and implements a "VisualStudioGenerator::IVisualStudioProfileGenerator" which looks for the .lnk files in the GDK's command prompts directory. It does some string matching to match the year in the .lnk filename to the installed VS version.
It then uses some COM goodness with IPersistFile to pull out info from the shortcut .lnk files ahead of adding them to the list.
The code currently is still just mvp to test this out and could use some tidying up.
Validation Steps Performed
Currently tested with: