diff --git a/README.md b/README.md index 8eee55d..2c8dd53 100644 --- a/README.md +++ b/README.md @@ -61,6 +61,11 @@ Please also check the documentation of [Language Support for Java by Red Hat](ht - `internalConsole` - VS Code debug console (input stream not supported). - `integratedTerminal` - VS Code integrated terminal. - `externalTerminal` - External terminal that can be configured in user settings. +- `stepFilters` - Skip specified classes or methods when stepping. + - `classNameFilters` - Skip the specified classes when stepping. Class names should be fully qualified. Wildcard is supported. + - `skipSynthetics` - Skip synthetic methods when stepping. + - `skipStaticInitializers` - Skip static initializer methods when stepping. + - `skipConstructors` - Skip constructor methods when stepping. ### Attach @@ -69,6 +74,11 @@ Please also check the documentation of [Language Support for Java by Red Hat](ht - `timeout` - Timeout value before reconnecting, in milliseconds (default to 30000ms). - `sourcePaths` - The extra source directories of the program. The debugger looks for source code from project settings by default. This option allows the debugger to look for source code in extra directories. - `projectName` - The preferred project in which the debugger searches for classes. There could be duplicated class names in different projects. This setting also works when the debugger looks for the specified main class when launching a program. +- `stepFilters` - Skip specified classes or methods when stepping. + - `classNameFilters` - Skip the specified classes when stepping. Class names should be fully qualified. Wildcard is supported. + - `skipSynthetics` - Skip synthetic methods when stepping. + - `skipStaticInitializers` - Skip static initializer methods when stepping. + - `skipConstructors` - Skip constructor methods when stepping. ### User Settings diff --git a/package.json b/package.json index c455ff0..48fb4ca 100644 --- a/package.json +++ b/package.json @@ -131,6 +131,55 @@ ], "description": "The specified console to launch the program.", "default": "internalConsole" + }, + "stepFilters": { + "type": "object", + "description": "Skip specified classes or methods when stepping.", + "default": { + "classNameFilters": [ + "java.*", + "javax.*", + "com.sun.*", + "sun.*", + "sunw.*", + "org.omg.*" + ], + "skipSynthetics": false, + "skipStaticInitializers": false, + "skipConstructors": false + }, + "properties": { + "classNameFilters": { + "type": "array", + "description": "Skip the specified classes when stepping. Class names should be fully qualified. Wildcard is supported.", + "item": { + "type": "string" + }, + "default": [ + "java.*", + "javax.*", + "com.sun.*", + "sun.*", + "sunw.*", + "org.omg.*" + ] + }, + "skipSynthetics": { + "type": "boolean", + "description": "Skip synthetic methods when stepping.", + "default": true + }, + "skipStaticInitializers": { + "type": "boolean", + "description": "Skip static initializer methods when stepping.", + "default": true + }, + "skipConstructors": { + "type": "boolean", + "description": "Skip constructor methods when stepping.", + "default": true + } + } } } }, @@ -166,6 +215,55 @@ "type": "string", "description": "The preferred project in which the debugger searches for classes. There could be duplicated class names in different projects.", "default": "" + }, + "stepFilters": { + "type": "object", + "description": "Skip specified classes or methods when stepping.", + "default": { + "classNameFilters": [ + "java.*", + "javax.*", + "com.sun.*", + "sun.*", + "sunw.*", + "org.omg.*" + ], + "skipSynthetics": false, + "skipStaticInitializers": false, + "skipConstructors": false + }, + "properties": { + "classNameFilters": { + "type": "array", + "description": "Skip the specified classes when stepping. Class names should be fully qualified. Wildcard is supported.", + "item": { + "type": "string" + }, + "default": [ + "java.*", + "javax.*", + "com.sun.*", + "sun.*", + "sunw.*", + "org.omg.*" + ] + }, + "skipSynthetics": { + "type": "boolean", + "description": "Skip synthetic methods when stepping.", + "default": false + }, + "skipStaticInitializers": { + "type": "boolean", + "description": "Skip static initializer methods when stepping.", + "default": false + }, + "skipConstructors": { + "type": "boolean", + "description": "Skip constructor methods when stepping.", + "default": false + } + } } } } @@ -216,7 +314,7 @@ }, "java.debug.settings.showHex": { "type": "boolean", - "description" : "show numbers in hex format in \"Variables\" viewlet.", + "description": "show numbers in hex format in \"Variables\" viewlet.", "default": false }, "java.debug.settings.showStaticVariables": {