171 Commits

Author SHA1 Message Date
Ben Gruver
ddc7c35e1c Add support for annotation element references
This adds support for both find usages and "go to definition"
functionality on an annotation element.
2015-03-15 14:55:57 -07:00
Ben Gruver
44a0c9091f Implement PsiAnnotationMethod in SmaliMethod 2015-03-14 12:34:04 -07:00
Ben Gruver
87f3e0dc7b Add support for finding field usages 2015-03-12 20:59:29 -07:00
Ben Gruver
6c99c3e111 Exclude nameless fields from SmaliClass.getFields()
Fields with a null or blank name tend to cause problems, so we'll just
exclude them until they have a name.
2015-03-12 20:59:02 -07:00
Ben Gruver
37d1612e2f Add find usages support for methods 2015-03-12 20:16:25 -07:00
Ben Gruver
fd373aedb7 Refactor out a FindUsagesTest base test class 2015-03-11 22:58:42 -07:00
Ben Gruver
809b934012 Simplify SmaliFindUsagesProvider by extending JavaFindUsagesProvider
The Java version does exactly what we want in most cases
2015-03-11 22:58:19 -07:00
Ben Gruver
b945b043ab Add tests for finding class usages 2015-03-11 22:58:17 -07:00
Ben Gruver
694fb7ca90 Add initial support for finding class usages in smali code 2015-03-11 22:28:46 -07:00
Ben Gruver
343ec04252 Associate the smali icon with the SmaliClass object
This ensures that the icon is shown next to the class in the project view
2015-03-06 20:00:16 -08:00
Ben Gruver
698b799e4f Improve error recovery when missing an .end sparse-switch 2015-03-06 19:32:21 -08:00
Ben Gruver
3abee993db Improve error recovery when missing an .end packed-switch 2015-03-06 19:27:46 -08:00
Ben Gruver
da28228d69 Improve error recovery when missing an .end array-data 2015-03-06 19:17:28 -08:00
Ben Gruver
f06f4312b4 Improve the error recovery for the local debug directive 2015-03-05 23:52:01 -08:00
Ben Gruver
87be840208 Improve the error recovery for parameter directives 2015-03-05 23:06:13 -08:00
Ben Gruver
bdbb235c6f Improve error recovery for missing .. tokens 2015-03-05 21:22:12 -08:00
Ben Gruver
765f8d8a7d Remove obsolete TODOs in the grammar 2015-03-05 20:19:13 -08:00
Ben Gruver
1c0611fe17 Remove the smalidea iml file
It can be generated with the gradle IDEA plugin now
2015-03-04 22:37:28 -08:00
Ben Gruver
0f49330183 Refactor how PARAM_LIST is parsed 2015-03-04 22:25:51 -08:00
Ben Gruver
c5cf51ac69 Fix up the gradle build 2015-03-04 20:58:22 -08:00
Ben Gruver
06d108d791 Refactor how the PARAM_LIST_OR_ID thing is parsed
This gets rids of the empty placeholder tokens, which cause errors
in IDEA's built-in lexer support code
2015-03-04 20:56:53 -08:00
Ben Gruver
ff7172c68d Improve error recovery of colons in various places 2015-03-04 20:56:53 -08:00
Ben Gruver
16c154b96e Improve error recovery for commas 2015-03-04 20:56:53 -08:00
Ben Gruver
0f597ae106 Add better error recovery for open/close braces 2015-03-04 20:56:53 -08:00
Ben Gruver
d7cd293904 Refactor open and close braces into the register_list/register_range rules 2015-03-04 20:56:53 -08:00
Ben Gruver
21d509aa6c Add better error recovery for the type_descriptor rule 2015-03-04 20:56:53 -08:00
Ben Gruver
62958a7091 Improve some error recovery around open/close parens in method prototypes 2015-03-04 20:56:49 -08:00
Ben Gruver
1d3d657b7f Improve error recovery of arrow parsing 2015-02-26 09:41:55 -08:00
Ben Gruver
18ff2d8368 Fix SmaliMethodReference.getReturnType() on missing return type 2015-02-26 09:37:49 -08:00
Ben Gruver
bcc0d5fa64 Improve error handling for missing reference_type_descriptor 2015-02-26 09:37:16 -08:00
Ben Gruver
a0149307bd Fix some nullability problems in SmaliMethodReference 2015-02-26 09:04:01 -08:00
Ben Gruver
24b1063e50 Improve parsing error recovery for the end method directive 2015-02-26 08:58:37 -08:00
Ben Gruver
f35c18489b Improve error handling for subannotation parsing 2015-02-21 14:02:54 -08:00
Ben Gruver
4640cc9c5b Improve error handling for literal parsing 2015-02-21 14:02:12 -08:00
Ben Gruver
251d6073b9 Improve error handling for annotation element parsing 2015-02-21 12:43:13 -08:00
Ben Gruver
1325537f8a Improve the error handling of annotation parsing 2015-02-21 12:23:38 -08:00
Ben Gruver
cbde720efa Improve the parsing of a field type 2015-02-20 20:54:31 -08:00
Ben Gruver
01f8c7dc7b Improve how the field annotations/end field thing is parsed 2015-02-20 20:03:45 -08:00
Ben Gruver
d5b748f4f5 Minor improvement to how the colon is parsed for a field declaration 2015-02-20 19:04:44 -08:00
Ben Gruver
dd4e572d0b Ensure there's always a member name element for a field 2015-02-19 20:03:59 -08:00
Ben Gruver
7d0a6c3854 Get rid of recoverWithMarker
Instead, we can just do a mark() before calling recover. herp-a-derp.
2015-02-19 20:01:18 -08:00
Ben Gruver
3505b35057 Merge the empty modifier list with the access list 2015-02-18 20:04:58 -08:00
Ben Gruver
92352fa44c Convert SmaliClassStatement into a stub 2015-02-18 19:55:42 -08:00
Ben Gruver
eb1d98f063 Add a deserializeNullableString utility method to the base stub class 2015-02-16 13:03:08 -08:00
Ben Gruver
9423a7d7d0 Start improving the error resistance of field declarations 2015-02-16 12:57:49 -08:00
Ben Gruver
70693ff6bb Add new LightCodeInsightParsingTestCase
This is based on IDEA's ParsingTestCase, but extending
LightCodeInsightFixtureTestCase, in order to provide
more functionality
2015-02-16 12:37:06 -08:00
Ben Gruver
f47973006b Split out a separate class access list, to improve parsing 2015-02-16 10:45:26 -08:00
Ben Gruver
ea04d22ffd Don't try to analyze methods with errors 2015-02-15 14:11:40 -08:00
Ben Gruver
7f6afa6a25 Move the return type to the MethodPrototype stub 2015-02-15 14:09:05 -08:00
Ben Gruver
6a1d56f0f0 Replace some usages of getParent() with getStubOrPsiParent() 2015-02-15 13:15:19 -08:00