forked from microsoft/TypeScript
-
Notifications
You must be signed in to change notification settings - Fork 0
Dev Mode in Visual Studio
Daniel Rosenwasser edited this page Jan 21, 2015
·
18 revisions
Dev Mode is a new feature for TypeScript 1.4 and higher that allows you to
- Use a custom language service file of your choosing.
- Debug the script side of the language service Visual Studio is using during a session.
- Open up the Registry Editor (
regedit.exe
from the Run prompt). - Navigate to
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0\TypeScriptLanguageService
(or create the key if it does not exist). - Create a new DWORD (32-bit) Value with the name
EnableDevMode
. - Right click the
EnableDevMode
value and Modify it. - Change the Value data to
1
.
- Open up the Registry Editor (
regedit.exe
from the Run prompt). - Navigate to
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\TypeScriptLanguageService
(or create the key if it does not exist). - Create a new DWORD (32-bit) Value with the name
EnableDevMode
. - Right click the
EnableDevMode
value and Modify it. - Change the value data to
1
.
- Enable dev mode.
- Open up the Registry Editor.
- Navigate to the applicable
TypeScriptLanguageService
key.
- In Visual Studio 2013:
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0\TypeScriptLanguageService
- In Visual Studio 2015:
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\TypeScriptLanguageService
- Create a new String Value with the name
CustomTypeScriptServicesFileLocation
. - Right click the
CustomTypeScriptServicesFileLocation
value and Modify it. - Change the value data to the full path of your alternative services file (e.g.
C:\Users\drosen\TypeScript\built\local\typescriptServices.js
)
When the language service's script side is modified in any way (whether or not you are using a custom location for your language service file), it will be reloaded on the fly. This means you should see changes instantaneously. However, this means that when debugging, your language service threads will be purged.
- Have a running instance of Visual Studio 2013/2015 with an open TypeScript file.
- Open a new instance of Visual Studio 2013/2015.
- Bring up the Attach to Process dialog by either
- Using menu bar and navigating from
Debug
->Attach to Process
. - Clicking on the
Attach
button from the Standard toolbar if it is visible.
- In the row labeled
Attach to:
, click on theSelect...
button. - Click the radio button
Debug these code types
and selectScript
. Then press OK. - Find the appropriate Visual Studio instance in your list. Visual Studio instances have the process name
devenv.exe
and you can typically narrow down your instance looking for its current file in the Title field. - Hit the
Attach
button. In the Solution Exporer. you should now see four active debuggers (one for each language service thread).
At this point you should be able to hit debug points and get an understanding of what's going on.
- Classifier_N: This thread runs the lexical classifier - a line-oriented classifier which is primarily concerned with fast rudimentary colorization.
- CoreServices_N: This is used to calculate the virtual project space in VS, and needs more documentation.
-
LanguageService_N and LanguageService_N: Unfortunately these haven't been distinctly named.
- One of these is the syntactic classifier, giving accurate (semantically agnostic) classifications.
- The other needs to be documented more thoroughly.
TypeScript Language Basics
- Basic Types
- Interfaces
- Classes
- Namespaces and Modules
- Functions
- Generics
- Compiler Options
- tsconfig.json
- Integrating with Build Tools
- Nightly Builds
TypeScript Language Advanced
- Mixins
- Declaration Merging
- Type Inference
- Type Compatibility
- JSX
- Writing Declaration Files
- Typings for NPM packages
News
TypeScript Contributors
- Contributing to TypeScript
- TypeScript Design Goals
- Coding Guidelines
- Spec conformance testing
- Useful Links for TypeScript Issue Management
- Writing Good Design Proposals
- Compiler Internals
Building Tools for TypeScript
- Architectural Overview
- Using the Compiler API
- Using the Language Service API
- Dev Mode in Visual Studio
- Debugging Language Service in VS Code
FAQs