Skip to content

Decoded variables and fields #560

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

Draft
wants to merge 57 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
2f2b2de
make loggers non-static
mzarnowski Jul 19, 2019
4c35a1f
propagate loggers from ProtocolServer
mzarnowski Jul 19, 2019
3536779
create explicit type for logger factory
mzarnowski Jul 22, 2019
0df2ed6
revert to ignoring case when comparing fields' names
Jul 31, 2019
244576a
Merge pull request #1 from marek1840/make-logging-customizable
jvican Jul 31, 2019
651e414
Merge branch 'main' of github.com:microsoft/java-debug into microsoft…
adpi2 Jun 11, 2021
0c44812
Fix logger customization
adpi2 Jun 14, 2021
640ae67
Merge branch 'microsoft-main' into main
adpi2 Jun 14, 2021
4a6c57d
Fix unused imports
adpi2 Jun 14, 2021
e3c40ce
Deploy custom java-debug-core
adpi2 Jun 15, 2021
bf9a6e4
Merge pull request #3 from adpi2/deploy-snapshot
adpi2 Jun 15, 2021
cb56e1b
Bump version to 0.33.0 (#386)
testforstephen Sep 23, 2021
9d88e12
Revert "Bump version to 0.33.0 (#386)"
adpi2 Feb 25, 2022
38a87db
Merge tag '0.34.0' into main
adpi2 Feb 25, 2022
be7fad7
Add IStepFilterProvider
adpi2 Jul 7, 2022
e6560ba
fix style
adpi2 Jul 7, 2022
55b5e69
Fix pom files
adpi2 Jul 8, 2022
8b510c5
Run CI on branch 0.34.0+x
adpi2 Jul 8, 2022
60c4a76
Up version to 0.34.0+2
adpi2 Jul 8, 2022
c41a93e
Merge pull request #7 from adpi2/0.34.0+2
adpi2 Jul 8, 2022
f56bf57
Add filtering for step out
adpi2 Jul 15, 2022
814a43b
fix version of eclipse snapshot
adpi2 Jul 15, 2022
2c17e86
Merge pull request #8 from scalacenter/filter-step-out
adpi2 Jul 18, 2022
06e34c6
Prepare release 0.34.0+3
adpi2 Jul 18, 2022
b880873
fix stepping out filter
adpi2 Jul 18, 2022
b39d1c0
Prepare release 0.34.0+4
adpi2 Jul 18, 2022
6b3160c
Add shouldStepOut in StepFilterProvider
adpi2 Oct 2, 2022
718d782
Release 0.34.0+5
adpi2 Oct 2, 2022
4d19fec
Reorder step filter logic
adpi2 Oct 3, 2022
be72edb
Fix restart frame handler
adpi2 Oct 4, 2022
a67da2e
Bump version to 0.34.0+7-SNAPSHOT
adpi2 Oct 4, 2022
7d92828
Fix step handler when upperFrame is null
adpi2 Oct 4, 2022
36a426d
Release 0.34.0+7
adpi2 Oct 5, 2022
9e23f5b
Always disable pending step request before stopping thread
adpi2 Oct 18, 2022
d289974
Skip breakpoint if shouldSkipOver
adpi2 Oct 18, 2022
11bf651
Release 0.34.0+8
adpi2 Oct 19, 2022
acd27e0
Deactivate evaluate for hovers
adpi2 Oct 20, 2022
d91006d
Release 0.34.0+9
adpi2 Oct 20, 2022
c4af552
Fix Java doc generation
adpi2 Oct 28, 2022
bdf8433
update .project
adpi2 Nov 3, 2022
798d5f7
Add format in IStepFilterProvider
aymanelamyaghri Mar 30, 2023
5c4ff53
rename formatMethodSig
aymanelamyaghri May 11, 2023
bf0ce15
Fix Java 8 compat
aymanelamyaghri May 11, 2023
14854c6
Rename IStepFilterProvider to IStackTraceProvider
adpi2 Jun 16, 2023
23df7eb
Open VariableUtils API (#9)
iusildra Jun 20, 2023
a4018d0
all providers getter
iusildra Aug 9, 2023
57e71e9
getProviders returns a list
adpi2 Aug 15, 2023
d5608e5
catch all throwables from dispatch request
adpi2 Dec 21, 2023
39b44d1
Reinstall all breakpoints in files that changed
adpi2 Feb 9, 2024
901d541
Introduce DecodedMethod
adpi2 Feb 22, 2024
f94ff12
Quick and dirty fix of scala-debug-adapter#664
adpi2 Feb 22, 2024
b87d910
Revert "Quick and dirty fix of scala-debug-adapter#664"
adpi2 Mar 6, 2024
d53200a
Use subtle presentation hint for generated methods
adpi2 Mar 11, 2024
2f1fd9b
decode variable
SaadAissa Jul 9, 2024
a49309b
decode variables and fields basics
SaadAissa Jul 16, 2024
f6b68c7
exceptions when notFound
SaadAissa Jul 23, 2024
9a8cf3b
don't show static fields
SaadAissa Jul 24, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@ name: CI

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:
linux:
Expand Down
4 changes: 2 additions & 2 deletions .project
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,12 @@
</natures>
<filteredResources>
<filter>
<id>1600224298170</id>
<id>1667383449012</id>
<name></name>
<type>30</type>
<matcher>
<id>org.eclipse.core.resources.regexFilterMatcher</id>
<arguments>node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
<arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
</matcher>
</filter>
</filteredResources>
Expand Down
4 changes: 2 additions & 2 deletions com.microsoft.java.debug.core/.project
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@
</natures>
<filteredResources>
<filter>
<id>1599036548523</id>
<id>1667383449000</id>
<name></name>
<type>30</type>
<matcher>
<id>org.eclipse.core.resources.regexFilterMatcher</id>
<arguments>node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
<arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
</matcher>
</filter>
</filteredResources>
Expand Down
303 changes: 303 additions & 0 deletions com.microsoft.java.debug.core/check_style.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,303 @@
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Puppy Crawl//DTD Check Configuration 1.3//EN"
"http://checkstyle.sourceforge.net/dtds/configuration_1_3.dtd">

<!--
Checkstyle configuration that checks the Google coding conventions from Google Java Style
that can be found at https://google.github.io/styleguide/javaguide.html.

Checkstyle is very configurable. Be sure to read the documentation at
http://checkstyle.sf.net (or in your downloaded distribution).

To completely disable a check, just comment it out or delete it from the file.

Authors: Max Vetrenko, Ruslan Diachenko, Roman Ivanov.
-->

<module name="Checker">
<property name="charset" value="UTF-8"/>

<property name="fileExtensions" value="java, properties, xml"/>
<module name="RegexpHeader">
<property name="headerFile" value="microsoft.header"/>
</module>
<!-- Checks for whitespace
See http://checkstyle.sf.net/config_whitespace.html -->
<module name="FileTabCharacter">
<property name="eachLine" value="true"/>
</module>

<!-- No trailing spaces allowed -->
<module name="RegexpSingleline">
<property name="format" value="\s+$"/>
<property name="message" value="Line has trailing spaces."/>
</module>

<!-- CRLF is not allowed -->
<module name="RegexpMultiline">
<property name="format" value="(?s:(\r\n|\r).*)"/>
<property name="message" value="CRLF and CR line endings are prohibited, but this file uses them."/>
</module>

<module name="LineLengthCheck">
<property name="fileExtensions" value="java" />
<!-- Checks if a line is too long. -->
<property name="max" value="${com.puppycrawl.tools.checkstyle.checks.sizes.LineLength.max}" default="160"/>
<property name="severity" value="error"/>

<!--
The default ignore pattern exempts the following elements:
- import statements
- long URLs inside comments
-->

<property name="ignorePattern"
value="${com.puppycrawl.tools.checkstyle.checks.sizes.LineLength.ignorePattern}"
default="^(package .*;\s*)|(import .*;\s*)|( *\* *https?://.*)$"/>
</module>

<module name="TreeWalker">
<!-- Default CheckStyle Whitespace rules seem reasonable to use. -->
<module name="EmptyForIteratorPad"/>
<module name="MethodParamPad"/>
<module name="NoWhitespaceAfter"/>
<module name="NoWhitespaceBefore"/>
<module name="OperatorWrap"/>
<module name="ParenPad"/>
<module name="TypecastParenPad"/>
<module name="WhitespaceAfter"/>
<module name="WhitespaceAround"/>

<!-- Modifier Order as specified by Java Language Specifications. -->
<module name="ModifierOrder"/>

<!-- Empty blocks allowed, as long as they have explicit comments stating why they are empty. -->
<module name="EmptyBlock">
<property name="option" value="text"/>
</module>


<module name="LeftCurly"/>
<module name="NeedBraces"/>
<module name="RightCurly"/>

<!-- Added some coding problems as INFO. Up to developer to react to them. -->
<module name="CovariantEquals">
<property name="severity" value="info"/>
</module>
<!-- Only apply this to local variables; Designers seem to prefer using same parameter names as class members. -->
<module name="HiddenField">
<property name="tokens" value="VARIABLE_DEF"/>
</module>

<!-- No multiple assignement in a single line. -->
<module name="InnerAssignment"/>
<module name="RedundantImport" />
<module name="UnusedImports"/>

<module name="OuterTypeFilename"/>
<module name="IllegalTokenText">
<property name="tokens" value="STRING_LITERAL, CHAR_LITERAL"/>
<property name="format"
value="\\u00(09|0(a|A)|0(c|C)|0(d|D)|22|27|5(C|c))|\\(0(10|11|12|14|15|42|47)|134)"/>
<property name="message"
value="Consider using special escape sequence instead of octal value or Unicode escaped value."/>
</module>
<module name="AvoidEscapedUnicodeCharacters">
<property name="allowEscapesForControlCharacters" value="true"/>
<property name="allowByTailComment" value="true"/>
<property name="allowNonPrintableEscapes" value="true"/>
</module>
<module name="AvoidStarImport"/>
<module name="OneTopLevelClass"/>
<module name="NoLineWrap"/>
<module name="EmptyBlock">
<property name="option" value="TEXT"/>
<property name="tokens" value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/>
</module>
<module name="NeedBraces"/>
<module name="RightCurly">
<property name="id" value="RightCurlySame"/>
<property name="tokens"
value="LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_DO"/>
</module>
<module name="RightCurly">
<property name="id" value="RightCurlyAlone"/>
<property name="option" value="alone"/>
<property name="tokens"
value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, STATIC_INIT, INSTANCE_INIT"/>
</module>
<module name="WhitespaceAround">
<property name="allowEmptyConstructors" value="true"/>
<property name="allowEmptyMethods" value="true"/>
<property name="allowEmptyTypes" value="true"/>
<property name="allowEmptyLoops" value="true"/>
<message key="ws.notFollowed"
value="WhitespaceAround: ''{0}'' is not followed by whitespace. Empty blocks may only be represented as '{}' when not part of a multi-block statement (4.1.3)"/>
<message key="ws.notPreceded"
value="WhitespaceAround: ''{0}'' is not preceded with whitespace."/>
</module>
<module name="OneStatementPerLine"/>
<module name="MultipleVariableDeclarations"/>
<module name="ArrayTypeStyle"/>
<module name="MissingSwitchDefault"/>
<module name="FallThrough"/>
<module name="UpperEll"/>
<module name="ModifierOrder"/>
<module name="EmptyLineSeparator">
<property name="allowNoEmptyLineBetweenFields" value="true"/>
<property name="allowMultipleEmptyLines" value="false"/>
<property name="allowMultipleEmptyLinesInsideClassMembers" value="false"/>
<property name="tokens" value="VARIABLE_DEF, METHOD_DEF"/>
</module>
<module name="SeparatorWrap">
<property name="id" value="SeparatorWrapDot"/>
<property name="tokens" value="DOT"/>
<property name="option" value="nl"/>
</module>
<module name="SeparatorWrap">
<property name="id" value="SeparatorWrapComma"/>
<property name="tokens" value="COMMA"/>
<property name="option" value="EOL"/>
</module>
<module name="SeparatorWrap">
<property name="id" value="SeparatorWrapMethodRef"/>
<property name="tokens" value="METHOD_REF"/>
<property name="option" value="nl"/>
</module>
<module name="PackageName">
<property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>
<message key="name.invalidPattern"
value="Package name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="TypeName">
<message key="name.invalidPattern"
value="Type name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="MemberName">
<property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9_]*$"/>
<message key="name.invalidPattern"
value="Member name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="ParameterName">
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
<message key="name.invalidPattern"
value="Parameter name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="CatchParameterName">
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
<message key="name.invalidPattern"
value="Catch parameter name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="LocalVariableName">
<property name="tokens" value="VARIABLE_DEF"/>
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
<message key="name.invalidPattern"
value="Local variable name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="ClassTypeParameterName">
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
<message key="name.invalidPattern"
value="Class type name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="MethodTypeParameterName">
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
<message key="name.invalidPattern"
value="Method type name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="InterfaceTypeParameterName">
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
<message key="name.invalidPattern"
value="Interface type name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="NoFinalizer"/>
<module name="GenericWhitespace">
<message key="ws.followed"
value="GenericWhitespace ''{0}'' is followed by whitespace."/>
<message key="ws.preceded"
value="GenericWhitespace ''{0}'' is preceded with whitespace."/>
<message key="ws.illegalFollow"
value="GenericWhitespace ''{0}'' should followed by whitespace."/>
<message key="ws.notPreceded"
value="GenericWhitespace ''{0}'' is not preceded with whitespace."/>
</module>
<module name="Indentation">
<property name="basicOffset" value="4"/>
<property name="braceAdjustment" value="0"/>
<property name="caseIndent" value="4"/>
<property name="throwsIndent" value="4"/>
<property name="lineWrappingIndentation" value="4"/>
<property name="arrayInitIndent" value="4"/>
</module>
<module name="OverloadMethodsDeclarationOrder"/>
<module name="VariableDeclarationUsageDistance"/>
<module name="CustomImportOrder">
<property name="customImportOrderRules"
value="STATIC###STANDARD_JAVA_PACKAGE###SPECIAL_IMPORTS###THIRD_PARTY_PACKAGE"/>
<property name="specialImportsRegExp" value="^org\."/>
<property name="thirdPartyPackageRegExp" value="^com\."/>
<property name="sortImportsInGroupAlphabetically" value="true"/>
<property name="separateLineBetweenGroups" value="true"/>
<property name="severity" value="info"/>
</module>
<module name="MethodParamPad"/>
<module name="ParenPad"/>
<module name="OperatorWrap">
<property name="option" value="NL"/>
<property name="tokens"
value="BAND, BOR, BSR, BXOR, DIV, EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR, LT, MINUS, MOD, NOT_EQUAL, PLUS, QUESTION, SL, SR, STAR, METHOD_REF "/>
</module>
<module name="AnnotationLocation">
<property name="id" value="AnnotationLocationMostCases"/>
<property name="tokens" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF"/>
</module>
<module name="AnnotationLocation">
<property name="id" value="AnnotationLocationVariables"/>
<property name="tokens" value="VARIABLE_DEF"/>
<property name="allowSamelineMultipleAnnotations" value="true"/>
</module>
<module name="NonEmptyAtclauseDescription"/>
<module name="JavadocTagContinuationIndentation"/>
<module name="SummaryJavadoc">
<property name="forbiddenSummaryFragments"
value="^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )"/>
</module>
<!-- <module name="JavadocParagraph"/> -->
<module name="AtclauseOrder">
<property name="tagOrder" value="@param, @return, @throws, @deprecated"/>
<property name="target" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/>
</module>
<module name="JavadocMethod">
<property name="scope" value="public"/>
<property name="allowMissingParamTags" value="true"/>
<property name="allowMissingReturnTag" value="true"/>
<property name="allowedAnnotations" value="Override, Test"/>
</module>
<module name="MethodName">
<property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9_]*$"/>
<message key="name.invalidPattern"
value="Method name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="SingleLineJavadoc">
<property name="ignoreInlineTags" value="false"/>
</module>
<module name="EmptyCatchBlock">
<property name="exceptionVariableName" value="expected"/>
</module>
<module name="CommentsIndentation"/>
<module name="EmptyStatement"/>
<module name="StringLiteralEquality"/>
<!-- Developer should probably bring up this issue with designer if ever it occurs. -->
<module name="EqualsHashCode">
<property name="severity" value="info" />
</module>
<!-- Only apply this to local variables; Designers seem to prefer using same parameter names as class members. -->
<module name="HiddenField">
<property name="tokens" value="VARIABLE_DEF"/>
</module>

<module name="SimplifyBooleanExpression"/>
<module name="SimplifyBooleanReturn"/>
</module>
</module>
2 changes: 2 additions & 0 deletions com.microsoft.java.debug.core/microsoft.header
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
^/\*+$
^\s*\* Copyright \(c\) \d\d\d\d.*$
Loading