Skip to content
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

v2.5.1.0 #5561

Merged
merged 612 commits into from
Aug 22, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
612 commits
Select commit Hold shift + click to select a range
b21c24d
Resource added for AddInterfaceImplementation
BZngr Mar 8, 2020
cd7cda4
Refactoring related to tests and misc cleanup
BZngr Mar 8, 2020
dc2b7dc
Merge branch 'rubberduck-vba/next' into InterfaceMemberCodeResuse
BZngr Mar 8, 2020
a425932
Merge pull request #5418 from MDoerner/ConvertFromVbaStringLiteralAnd…
retailcoder Mar 15, 2020
8786184
Merge branch 'rubberduck-vba/next' into InterfaceMemberCodeResuse
BZngr Mar 17, 2020
8a992ee
Add MoveToFolderRefactoring
MDoerner Mar 19, 2020
213822f
Fix WriteOnlyPropertyInspection
MDoerner Mar 20, 2020
7b2b173
Add MoveContainingFolderRefactoring
MDoerner Mar 21, 2020
50299d8
Add tests for MoveToFolderRefactoring itself
MDoerner Mar 21, 2020
f17b1f7
Add tests for MoveContainingFolderRefactoring itself
MDoerner Mar 21, 2020
b9e6e70
Introduce IRefactoringUserInteraction
MDoerner Mar 21, 2020
8cde475
Introduce CodeExplorerMoveToFolderCommand
MDoerner Mar 21, 2020
6b77f0a
Add move to folder DnD in the CE
MDoerner Mar 22, 2020
9b2fc3b
Stop moving components into folders they are already in
MDoerner Mar 22, 2020
d4216b0
Fix argumentList
MDoerner Mar 23, 2020
ea6edd9
Merge pull request #5441 from MDoerner/FixArgumentList
retailcoder Mar 24, 2020
e56bb88
Merge pull request #5419 from BZngr/InterfaceMemberCodeResuse
retailcoder Mar 24, 2020
16dad99
Merge branch 'next' into MoveToFolderRefactoring
MDoerner Mar 24, 2020
68c9f55
Fix missing usings after merge
MDoerner Mar 24, 2020
7bfb017
Relocate ImplementInterface resource
BZngr Mar 25, 2020
3dba9a2
Added donate button
retailcoder Mar 28, 2020
17cad28
wrapped form in a div
retailcoder Mar 28, 2020
52b2bc5
Update README.md
retailcoder Mar 29, 2020
f99e450
Update README.md
retailcoder Mar 29, 2020
5048f3a
Update README.md
retailcoder Mar 29, 2020
27260ba
Update README.md
retailcoder Mar 29, 2020
7b1c020
Merge pull request #5448 from rubberduck-vba/paypal-button
retailcoder Mar 29, 2020
ff1c5f6
Only report Let or Set in WriteOnlyPropertyInspection
MDoerner Mar 29, 2020
6f0a1d7
Unregister load event handlers in view code behinds
MDoerner Mar 29, 2020
5fec4ad
Merge pull request #5438 from MDoerner/MoveToFolderRefactoring
retailcoder Mar 31, 2020
436ec4d
Initial implementation
BZngr Apr 2, 2020
98503e2
Merge branch 'rubberduck-vba/next' into RefactorExtensionMethods_5419
BZngr Apr 2, 2020
14abeaf
Cleanup from merge
BZngr Apr 2, 2020
468d696
Merge branch 'rubberduck-vba/next' into Resx_FixFor5419
BZngr Apr 2, 2020
6710770
Add allowed argument types to IAnnotation
MDoerner Apr 15, 2020
9aa0cd6
Merge pull request #5446 from BZngr/Resx_FixFor5419
retailcoder Apr 17, 2020
6ec204e
Prohibit dragging and dropping a folder into itself
MDoerner Apr 24, 2020
6d8dc24
Merge pull request #5474 from MDoerner/DoNotAllowFolderDragIntoItself
retailcoder Apr 24, 2020
b8dc34b
Fix invalid range
skacurt Apr 25, 2020
9ba3d0f
Introduce AnnotateDeclarationRefactoringAction
MDoerner Apr 24, 2020
d3ee5a5
generate xmldocs for Rubberduck.Parsing
retailcoder Apr 26, 2020
ec2954c
added xmldocs for annotations, fixes #5380
retailcoder Apr 26, 2020
433de5a
Merge pull request #5477 from skacurt/patch-1
retailcoder Apr 26, 2020
dbb93c3
Added Rubberduck.Parsing.xml build artifact
retailcoder Apr 26, 2020
7524a7b
updated parameter docs
retailcoder Apr 26, 2020
58a293c
Merge branch 'next' of git://github.com/rubberduck-vba/Rubberduck int…
retailcoder Apr 26, 2020
37a6e72
fix output path
retailcoder Apr 26, 2020
3087241
Merge branch 'next' of https://github.com/retailcoder/Rubberduck into…
retailcoder Apr 26, 2020
7969162
generate Rubberduck.Parsing.xml in unified build output path
retailcoder Apr 27, 2020
4b4d938
Stop suppressing RequestBringIntoView in InspectionResultsControl
MDoerner Apr 30, 2020
dda811c
Merge branch 'rubberduck-vba/next' into RefactorExtensionMethods_5419
BZngr Apr 30, 2020
7e71ea1
Set vertical Alignment of textBox content to center
BZngr May 6, 2020
3b7b5b8
Merge pull request #5492 from BZngr/5447_EncapsulateFieldMinorFormat
retailcoder May 6, 2020
d336853
Merge remote-tracking branch 'refs/remotes/rubberduck-vba/next' into …
BZngr May 7, 2020
537a781
Fix NRE in TestExplorerViewModel
MDoerner May 7, 2020
164eb39
Fix WithMemberAccesses in MemberMayReturnNothingInspection
MDoerner May 7, 2020
e20d870
Resolved issue
BZngr May 8, 2020
5f24969
Add UI for AnnotateDeclarationRefactoring
MDoerner Apr 27, 2020
18c4e79
Merge pull request #5482 from MDoerner/InspectionResultsWindowInvesti…
retailcoder May 12, 2020
3fb5770
Merge pull request #5494 from MDoerner/FixTwoNREs
retailcoder May 12, 2020
ed912ed
Addressed comments. Added more examples
BZngr May 12, 2020
6fb89b7
Merge branch 'rubberduck-vba/next' into 5490_FalsePositive
BZngr May 12, 2020
c2885b2
Improved XMLDoc example for Public std module procs
BZngr May 12, 2020
799b76a
Add code pane command for AnnotateDeclaration
MDoerner May 13, 2020
079e0fe
Merge branch 'next' of git://github.com/rubberduck-vba/Rubberduck int…
retailcoder May 14, 2020
2725c60
removed illegal example
retailcoder May 14, 2020
77df36f
Merge remote-tracking branch 'refs/remotes/rubberduck-vba/next' into …
BZngr May 15, 2020
cae0d96
Fix several bugs in the new UI for AnnotateDeclaration
MDoerner May 13, 2020
fe10c33
Improvements to the AnnotateDeclaration UI
MDoerner May 15, 2020
632afcb
Merge branch 'next' into AnnotateCommand
MDoerner May 15, 2020
c491534
Addresses Inspection False Positive: Issue 5456
BZngr May 16, 2020
85e3cfe
Modify to support jumps to labels or linenumbers
BZngr May 16, 2020
978c44a
Fixed typo
Tanarri May 19, 2020
65bf91e
Merge pull request #5498
Vogel612 May 19, 2020
7816511
Move buttons on AnnotateDeclaration UI
MDoerner May 21, 2020
3bbacdb
Add Annotate submenu to the CE
MDoerner May 21, 2020
b927e4a
Merge remote-tracking branch 'upstream/next' into Issue5346_Extract_i…
IvenBach May 22, 2020
c444b25
Addresses Inspection False Positive: Issue 5456
BZngr May 16, 2020
24bd5ca
Merge branch 'rubberduck-vba/next' into 5456_AssignNotUsed_Jumps
BZngr May 22, 2020
00f6ecb
Merge remote-tracking branch 'origin/5456_AssignNotUsed_Jumps' into 5…
BZngr May 23, 2020
2cfbb9d
Merge branch 'rubberduck-vba/next' into 5490_FalsePositive
BZngr May 23, 2020
1b088d5
Fix XMLDoc
BZngr May 23, 2020
8c6c97e
Merge branch 'rubberduck-vba/next' into RefactorExtensionMethods_5419
BZngr May 23, 2020
5904fa1
Clarify instancing wording notice
IvenBach May 24, 2020
7cd38ad
Remove unused converters
IvenBach May 24, 2020
864167e
Remove unused code
IvenBach May 24, 2020
5237703
Exclude attribute annotations from AnnotateDeclaration if not applicable
MDoerner May 24, 2020
dcbb979
Sort inspections by localized name in AnnotateDeclaration UI
MDoerner May 24, 2020
5189907
Make TextBoxErrorTemplate look like current Rename UI error
MDoerner May 24, 2020
dc7b052
Remove refactoring resource from RubberduckUI again
MDoerner May 24, 2020
5ac6d38
Give ThunderCode inspections useful names
MDoerner May 24, 2020
c8e9543
Support same-line statements and jumps
BZngr May 24, 2020
64ce3c0
Merge remote-tracking branch 'refs/remotes/rubberduck-vba/next' into …
BZngr May 25, 2020
ea22e58
Put AnnotateDeclaration in its own code pane menu
MDoerner May 25, 2020
eeb0a86
Stop swallowing request bring into view on test explorer
MDoerner May 29, 2020
37bd1bb
Merge pull request #5506 from MDoerner/RemoveBringIntoViewHandlerFrom…
retailcoder May 29, 2020
115bfa4
Fixes #4913
BZngr May 30, 2020
3d4a5cb
Modify tests to avoid false-positive test result(s)
BZngr May 30, 2020
672ae5d
Move TextBoxErrorStyle to DefaultStyle.xaml
MDoerner May 31, 2020
55d0f99
Fix key for AttributeValueOutOfSyncInsection in settings
MDoerner May 31, 2020
dc812cf
Merge branch '5456_AssignNotUsed_Jumps' into UnusedAssignment_FalsePo…
BZngr May 31, 2020
8a0da07
Make Rename dialog use the TextBoxErrorStyle
MDoerner May 31, 2020
1f398de
Enhance conflicting name message on rename
MDoerner May 31, 2020
91cc2c5
Ask for confirmation in MoveToFolder if folder will be merged
MDoerner May 31, 2020
8252f74
Make the MoveToFolder dialog use the TextBoxErrorStyle
MDoerner Jun 1, 2020
9e68b4d
Make individual empty subfolder names illegal in move (to) folder dia…
MDoerner Jun 1, 2020
92388aa
Merge remote-tracking branch 'refs/remotes/rubberduck-vba/next' into …
BZngr Jun 4, 2020
a80cf79
Merge branch 'next' into AnnotateCommand
MDoerner Jun 6, 2020
cfe1ad3
Merge pull request #5452 from BZngr/RefactorExtensionMethods_5419
retailcoder Jun 7, 2020
e973f64
Merge branch 'next' into AnnotateCommand
MDoerner Jun 7, 2020
69bfff3
Merge pull request #5495 from BZngr/5490_FalsePositive
retailcoder Jun 7, 2020
c6214c9
Merge branch 'next' into AnnotateCommand
MDoerner Jun 7, 2020
5f73f57
Add right margin to arguments grid of AnnotateDeclaration UI
MDoerner Jun 7, 2020
5ad1e11
Use live grouping and live filtering in TestExplorer
MDoerner Jun 7, 2020
3236197
Add delay to search box input
MDoerner Jun 7, 2020
063cc9c
Merge pull request #5517 from MDoerner/UseLiveGroupingInTestExplorer
retailcoder Jun 7, 2020
14acc3f
Merge pull request #5516 from MDoerner/DelayForSearchInput
retailcoder Jun 7, 2020
7accdd2
Merge pull request #5497 from MDoerner/AnnotateCommand
retailcoder Jun 7, 2020
f0cbd16
Extract ChangeFolderRefactoringAction out of MoveFolderRefactoringAction
MDoerner Jun 6, 2020
213bf1c
Fix handling of cancellation in CE move to folder commands
MDoerner Jun 6, 2020
126ffa4
Introduce RenameFolderRefactoringAction
MDoerner Jun 6, 2020
a4247f9
Add UI for RenameFolder
MDoerner Jun 7, 2020
082d93e
Enhance CE Rename command to cover folder renames
MDoerner Jun 7, 2020
53e2b49
Fix minor bugs in RenameFolder UI
MDoerner Jun 7, 2020
97bdd9a
Merge pull request #5515 from MDoerner/RenameFolder
retailcoder Jun 9, 2020
811448b
Add AddOrUpdateAttribute to AttributesUpdater
MDoerner Jun 16, 2020
1bd8b48
Merge pull request #5502 from BZngr/5456_AssignNotUsed_Jumps
retailcoder Jun 18, 2020
ebe40b9
Allow to annotate declarations in attributes code
MDoerner Jun 18, 2020
5e8a911
Enhance AnnotateDeclarationRefactoringAction to allow adjusting corre…
MDoerner Jun 24, 2020
5a21194
Adjust AnnotateDeclarationViewModel for new AdjustAttribute capability
MDoerner Jun 24, 2020
a1e92de
Add option to add/adjust attribute to AnnotateDeclaration UI
MDoerner Jun 24, 2020
1a2cef2
Show AnnotateDeclaration UI from CE command for IAttributeAnnotations
MDoerner Jun 24, 2020
823562b
Use correct context when adding annotations via attributes code
MDoerner Jun 24, 2020
97ed7d3
Merge branch 'next' into Issue5346_Extract_interface_creates_private_…
MDoerner Jun 24, 2020
14e9569
Introduce new setting to enable drag and drop in CE
MDoerner Jun 25, 2020
1d02fa0
Enhance drag and drop to honor the drag and drop setting
MDoerner Jun 25, 2020
eb66ed9
Replace fix and context menu in inspection results with two step menu
MDoerner Jun 26, 2020
7f35af8
Introduce IgnoreInModuleQuickFix
MDoerner Jun 26, 2020
77d8a23
Allow to apply IgnoreOnce in bulk
MDoerner Jun 26, 2020
34ff6c4
Add CanFixMultiple flag to quick fixes
MDoerner Jun 26, 2020
1b3e259
Introduce option to fix all selected occurrences
MDoerner Jun 27, 2020
8d1aaeb
Deactivate all quick fix options except fix selection for multi-selec…
MDoerner Jun 27, 2020
7dbfd20
Make quick fix scope options visible on general applicability for the…
MDoerner Jun 27, 2020
1141a33
Revert to only images for IgnoreOnce
MDoerner Jun 27, 2020
ff5e31a
Fix fix menu in inspection results window
MDoerner Jun 27, 2020
fc8e27b
Suppress only horizontal scroll in inspection results and test explorer
MDoerner Jun 27, 2020
b710439
Disable FunctionReturnValueDiscardedInspection for built-in functions
MDoerner Jun 27, 2020
669c4d8
Merge pull request #5357 from IvenBach/Issue5346_Extract_interface_cr…
MDoerner Jul 2, 2020
9fcad5a
Merge branch 'next' into EnhanceFunctionReturnValueDiscardedInspectio…
MDoerner Jul 2, 2020
4b01a60
Merge branch 'next' into SuppressHorizontalBringIntoViewInGroupinGrids
MDoerner Jul 2, 2020
f536ffa
Merge branch 'next' into RedesignOfQuickFixApplication
MDoerner Jul 2, 2020
d68a0dd
Merge branch 'next' into OptionToDisableDragAndDrop
MDoerner Jul 2, 2020
66d00b0
Merge branch 'next' into AdjustAttributeFromAnnotateDeclaration
MDoerner Jul 2, 2020
8011485
Merge pull request #5526 from MDoerner/AdjustAttributeFromAnnotateDec…
retailcoder Jul 4, 2020
fc4fe97
Merge branch 'next' into RedesignOfQuickFixApplication
MDoerner Jul 4, 2020
b5d5cb6
Align IgnoreModule test setup to new annotation updater contructor
MDoerner Jul 4, 2020
2581512
Merge pull request #5532 from MDoerner/SuppressHorizontalBringIntoVie…
retailcoder Jul 4, 2020
34de053
Merge branch 'next' into OptionToDisableDragAndDrop
MDoerner Jul 4, 2020
ff73180
Merge branch 'next' into OptionToDisableDragAndDrop
MDoerner Jul 4, 2020
69e6de1
Merge branch 'next' into RedesignOfQuickFixApplication
MDoerner Jul 4, 2020
74d66d2
Merge pull request #5533 from MDoerner/EnhanceFunctionReturnValueDisc…
retailcoder Jul 4, 2020
9dd34c5
Merge pull request #5529 from MDoerner/OptionToDisableDragAndDrop
retailcoder Jul 4, 2020
4e2f8ed
Simplify quick fix scope labels
MDoerner Jul 4, 2020
35cb948
Merge pull request #5531 from MDoerner/RedesignOfQuickFixApplication
retailcoder Jul 4, 2020
7b92efd
Add/Align German translations
MDoerner Jul 5, 2020
611cbe5
Set default for vertical content alignment of checkbox to Center
MDoerner Jul 5, 2020
f129c51
Spanish translations
erigoni Jul 7, 2020
2c050ef
Spanish translation
erigoni Jul 7, 2020
d0eb079
Detailed Review 1
erigoni Jul 7, 2020
200e650
Restore Rubberduck.Resources/Inspections/InspectionNames.fr.resx
erigoni Jul 7, 2020
5d637b1
Fix Typo in InspectionNames (en cs de)
erigoni Jul 7, 2020
0bb8f79
Detailed Review: InspectionInfo
erigoni Jul 7, 2020
b7b2f48
Detailed Review: InspectionNames.es
erigoni Jul 7, 2020
0636556
Merge pull request #5537 from erigoni/next
Vogel612 Jul 7, 2020
1b0b48a
Detailed Review: InspectionsResults.es
erigoni Jul 7, 2020
591698e
Detailed Review: InspectionsUI.es
erigoni Jul 7, 2020
313e068
Detailed Review: QuickFixes.es
erigoni Jul 7, 2020
c17416c
Minor changes
erigoni Jul 7, 2020
e498d95
Merge pull request #5538 from erigoni/next
retailcoder Jul 8, 2020
053fbf0
Merge branch 'rubberduck-vba/next' into next
BZngr Jul 11, 2020
7a10c47
Remove evaluation by blocks
BZngr Jun 2, 2020
adb2693
Merge branch 'rubberduck-vba/next' into UnusedAssignment_FalsePositives
BZngr Jul 11, 2020
303de3c
Merge pull request #5536 from MDoerner/GermanTranslations
retailcoder Jul 17, 2020
7a8c7b3
formatted xml
retailcoder Jul 19, 2020
4126186
reworded xmldoc content for attribute annotations, changed a paramete…
retailcoder Jul 23, 2020
604487a
added README.md, cleaned up inspection namespaces / fixes broken link…
retailcoder Jul 23, 2020
595e36b
renamed quickfix to describe its action rather than the trigger for t…
retailcoder Jul 23, 2020
da7aa67
adjusted namespaces
retailcoder Jul 23, 2020
6db665e
Merge branch 'next' of https://github.com/retailcoder/Rubberduck into…
retailcoder Jul 23, 2020
d9c2834
merge with conflicts
retailcoder Jul 23, 2020
ca9f3e1
Fixes warning AC0180
retailcoder Jul 24, 2020
16b9b37
fixes broken namespace refs
retailcoder Jul 24, 2020
74c9d4c
undo ca9f3e192...
retailcoder Jul 24, 2020
35a2520
removed code accidentally committed
retailcoder Jul 24, 2020
409f5c0
adjusted analyzer test, added missing cases
retailcoder Jul 24, 2020
735e02a
reworded summary
retailcoder Jul 25, 2020
c1c1b91
made <module> a child of <before> and <after> tags for annotations; a…
retailcoder Jul 25, 2020
4bde4a8
added missing single quotes
retailcoder Jul 27, 2020
a16e40d
Merge pull request #5479 from retailcoder/next
retailcoder Jul 28, 2020
f81160f
Fench Translations (#5547)
retailcoder Jul 28, 2020
60055fc
Fixed invalid xml
retailcoder Jul 28, 2020
b3a9dc5
added link to inspection details page
retailcoder Jul 28, 2020
97475d1
extracted IWebNavigator interface
retailcoder Jul 28, 2020
79cea90
Merge pull request #5548 from retailcoder/weblink
retailcoder Jul 28, 2020
3c56bf9
Merge branch 'Issue5319_Exported_doccls_include_attributes' of https:…
retailcoder Jul 28, 2020
e98959b
fixed test setup
retailcoder Jul 29, 2020
9ed85e0
Merge updated export handling for document modules
Vogel612 Jul 29, 2020
5a01f0a
Ignore RubberduckParsing.xml
BZngr Jul 29, 2020
67dbca5
Merge branch 'rubberduck-vba/next' into UnusedAssignment_FalsePositives
BZngr Jul 29, 2020
723bbac
Merge branch 'rubberduck-vba/next' into next
BZngr Aug 6, 2020
521146e
Address PR comments
BZngr Aug 9, 2020
bb1b1dd
Add test per review comments
BZngr Aug 10, 2020
e3680c0
Add declaration and newline removal methods
BZngr Aug 11, 2020
d5a5587
Merge pull request #5541 from BZngr/UnusedAssignment_FalsePositives
MDoerner Aug 12, 2020
f659173
Add DefaultPropertyValueParamIdentifier property
BZngr Aug 12, 2020
fa7723b
Change default property RHS parameter identifier
BZngr Aug 12, 2020
dd845d1
Move Property RHS Parameter Resource
BZngr Aug 12, 2020
c935798
Remove blank lines left by declaration removals
BZngr Aug 11, 2020
ef1c9cc
Remove blank lines left by declaration removals
BZngr Aug 11, 2020
bbf3031
Merge branch 'rubberduck-vba/next' into EncapsulateField_ClearBlanklines
BZngr Aug 12, 2020
1b9073d
Merge branch 'rubberduck-vba/next' into CodeBuilder_ChangeDefaultRHSP…
BZngr Aug 13, 2020
0da217d
Merge branch 'rubberduck-vba/next' into next
BZngr Aug 13, 2020
70edc91
Address #5556 Review comments
BZngr Aug 14, 2020
61795ef
Address PR #5555 comments
BZngr Aug 14, 2020
df01e8a
Merge pull request #5555 from BZngr/EncapsulateField_ClearBlanklines
retailcoder Aug 15, 2020
ec44dc1
Changes build version to 2.5.1.x
retailcoder Aug 15, 2020
e5bf57b
fixed ArgumentNullException
retailcoder Aug 15, 2020
d2189da
Merge pull request #5556 from BZngr/CodeBuilder_ChangeDefaultRHSParam
retailcoder Aug 15, 2020
5c858da
Merge branch 'next' of git://github.com/rubberduck-vba/Rubberduck int…
retailcoder Aug 16, 2020
c87f158
Update MissingModuleAnnotationInspection.cs
retailcoder Aug 16, 2020
a64fc33
Merge pull request #5560 from rubberduck-vba/missingmoduleannotation-…
retailcoder Aug 16, 2020
734ca5b
Merge branch 'rubberduck-vba/next' into next
BZngr Aug 16, 2020
6ef7326
Added missing background brush.
retailcoder Aug 17, 2020
49db96c
fixed various broken code explorer icons
retailcoder Aug 17, 2020
688d922
UserForm modules have UserForm declaration type; fixes the tests brok…
retailcoder Aug 17, 2020
d28bf6a
Revert userform declaration type back to DeclarationType.ClassModule.
retailcoder Aug 18, 2020
a228a77
Change default RHS property parameter to 'RHS'
BZngr Aug 18, 2020
f5205b8
Remove resources
BZngr Aug 18, 2020
bf61597
Revert "Remove resources"
BZngr Aug 18, 2020
923d078
Change Property RHS Resource
BZngr Aug 18, 2020
2311295
Remove non-UI resource
BZngr Aug 18, 2020
5e07cf7
Get RHS Dflt Parameter from Resource.Refactorings
BZngr Aug 18, 2020
4f6a636
Get RHS Dflt Parameter from Resource.Refactorings
BZngr Aug 18, 2020
7321f8a
Czech translations for 2.5.1
SonGokussj4 Aug 18, 2020
a800602
Small fix for both english and czech
SonGokussj4 Aug 19, 2020
0da29c2
Merge pull request #5562 from BZngr/DefaultPropertyRHSIdentifer
retailcoder Aug 20, 2020
e8215e1
Merge pull request #5565 from SonGokussj4/CzechTranslations_v2.5.1
retailcoder Aug 20, 2020
f07117f
reverted "fixes" for UserForm declaration type.
retailcoder Aug 22, 2020
e402465
Merge pull request #5559 from retailcoder/vbump251
retailcoder Aug 22, 2020
a110623
Merge branch 'master' into next
retailcoder Aug 22, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,9 @@ CodeGraphData/

# Generated Artifacts
Rubberduck.CodeAnalysis.xml
Rubberduck.Parsing.xml

#Gradle
/.gradle/
/Rubberduck.CodeAnalysis/Rubberduck.CodeAnalysis.xml
/Rubberduck.Parsing/Rubberduck.Parsing.xml
20 changes: 10 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,6 @@
<img alt="Rubberduck Open-Source VBE Add-In - VBA6 | VBA7 x86/x64 | VB6" src="https://user-images.githubusercontent.com/5751684/48656196-a507af80-e9ef-11e8-9c09-1ce3c619c019.png" />

<!-- campaign is no longer accepting donations
### Donate!

If you like this project and would like to thank its contributors, you are welcome to support our GoFundMe campaign to finance Rubberduck swag and international shipping - contributors will be getting t-shirts, mugs, and other cool things.

[![GoFundMe campaign](https://user-images.githubusercontent.com/5751684/29191799-e3d20b72-7dec-11e7-8ec6-0c69da4a3135.png)](https://www.gofundme.com/rubberduckvba)
-->
---

|Branch | Description | Build Status | Download link |
|------------|---|--------------|-|
Expand All @@ -20,9 +14,15 @@ If you like this project and would like to thank its contributors, you are welco
[![Chat on stackexchange](https://img.shields.io/badge/chat-on%20stackexchange-blue.svg)](https://chat.stackexchange.com/rooms/14929/vba-rubberducking)
[![License](https://img.shields.io/github/license/rubberduck-vba/Rubberduck.svg)](https://github.com/rubberduck-vba/Rubberduck/blob/next/LICENSE)

> **[rubberduckvba.com](http://rubberduckvba.com)** [Wiki](https://github.com/rubberduck-vba/Rubberduck/wiki) [Rubberduck News](https://rubberduckvba.wordpress.com/)
> devs@rubberduckvba.com
> Follow [@rubberduckvba](https://twitter.com/rubberduckvba) on Twitter

> **[rubberduckvba.com](http://rubberduckvba.com)** | **[Rubberduck News](https://rubberduckvba.wordpress.com/)**
| **[Twitter (@rubberduckvba)](https://twitter.com/rubberduckvba)** | **[Wiki](https://github.com/rubberduck-vba/Rubberduck/wiki)**

Rubberduck is free, but keeping it visible online isn't. Donate to help us pay for hosting and keep the blog free of ads!

|Donate|Note |
|:------:|-|
|<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=UY5K5X36B7T2S&currency_code=CAD&source=url"><img alt="Donate via PayPal" src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif"></a><p><sub>via PayPal</sub></p>|Donations in excess of what's needed to cover our fees will be donated to the <a href="https://mssociety.ca/">Multiple Sclerosis Society of Canada</a>.|

---

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Rubberduck.Parsing.Symbols;

namespace Rubberduck.Inspections.CodePathAnalysis.Extensions
{
public static class NodeExtensions
{
public static IEnumerable<INode> GetFlattenedNodes(this INode node, IEnumerable<Type> excludedTypes)
public static IEnumerable<INode> FlattenedNodes(this INode node, IEnumerable<Type> excludedTypes)
{
foreach (var child in node.Children)
{
Expand All @@ -18,15 +17,15 @@ public static IEnumerable<INode> GetFlattenedNodes(this INode node, IEnumerable<
}
else
{
foreach (var nextChild in GetFlattenedNodes(child, excludedTypes))
foreach (var nextChild in FlattenedNodes(child, excludedTypes))
{
yield return nextChild;
}
}
}
}

public static IEnumerable<INode> GetNodes(this INode node, IEnumerable<Type> types)
public static IEnumerable<INode> Nodes(this INode node, ICollection<Type> types)
{
if (types.Contains(node.GetType()))
{
Expand All @@ -35,50 +34,42 @@ public static IEnumerable<INode> GetNodes(this INode node, IEnumerable<Type> typ

foreach (var child in node.Children)
{
foreach (var childNode in GetNodes(child, types))
foreach (var childNode in Nodes(child, types))
{
yield return childNode;
}
}
}

public static INode GetFirstNode(this INode node, IEnumerable<Type> excludedTypes)
public static INode GetFirstNode(this INode node, ICollection<Type> excludedTypes)
{
if (!excludedTypes.Contains(node.GetType()))
{
return node;
}

if (!node.Children.Any())
{
return null;
}

return GetFirstNode(node.Children[0], excludedTypes);
}

public static List<IdentifierReference> GetIdentifierReferences(this INode node)
public static bool TryGetAncestorNode<T>(this INode node, out T ancestor) where T: INode
{
var nodes = new List<IdentifierReference>();

var blockNodes = node.GetNodes(new[] { typeof(BlockNode) });
foreach (var block in blockNodes)
ancestor = default;
if (node.Parent is null)
{
INode lastNode = default;
foreach (var flattenedNode in block.GetFlattenedNodes(new[] { typeof(GenericNode), typeof(BlockNode) }))
{
if (flattenedNode is AssignmentNode &&
lastNode is AssignmentNode)
{
nodes.Add(lastNode.Reference);
}

lastNode = flattenedNode;
}

if (lastNode is AssignmentNode &&
block.Children[0].GetFirstNode(new[] { typeof(GenericNode) }) is DeclarationNode)
{
nodes.Add(lastNode.Reference);
}
return false;
}

return nodes;
if (node.Parent is T result)
{
ancestor = result;
return true;
}
return TryGetAncestorNode(node.Parent, out ancestor);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
using Antlr4.Runtime.Tree;

namespace Rubberduck.Inspections.CodePathAnalysis.Nodes
{
public class AssignmentExpressionNode : NodeBase
{
public AssignmentExpressionNode(IParseTree tree) : base(tree) { }
}
}
4 changes: 4 additions & 0 deletions Rubberduck.CodeAnalysis/CodePathAnalysis/Walker.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@ public INode GenerateTree(IParseTree tree, Declaration declaration)
case VBAParser.BlockContext _:
node = new BlockNode(tree);
break;
case VBAParser.LetStmtContext _:
case VBAParser.SetStmtContext _:
node = new AssignmentExpressionNode(tree);
break;
}

if (declaration.Context == tree)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
using System.Collections.Generic;
using System.Linq;
using Rubberduck.Parsing.Symbols;
using Rubberduck.Parsing.VBA;
using Rubberduck.Parsing.VBA.DeclarationCaching;

namespace Rubberduck.CodeAnalysis.Inspections.Abstract
{
internal abstract class ArgumentReferenceInspectionFromDeclarationsBase : IdentifierReferenceInspectionFromDeclarationsBase
{
protected ArgumentReferenceInspectionFromDeclarationsBase(RubberduckParserState state)
: base(state) { }

protected abstract bool IsUnsuitableArgument(ArgumentReference reference, DeclarationFinder finder);

protected override IEnumerable<IdentifierReference> ObjectionableReferences(DeclarationFinder finder)
{
return ObjectionableDeclarations(finder)
.OfType<ParameterDeclaration>()
.SelectMany(parameter => parameter.ArgumentReferences);
}

protected override bool IsResultReference(IdentifierReference reference, DeclarationFinder finder)
{
if (!(reference is ArgumentReference argumentReference))
{
return false;
}

return IsUnsuitableArgument(argumentReference, finder);
}
}

internal abstract class ArgumentReferenceInspectionFromDeclarationsBase<T> : IdentifierReferenceInspectionFromDeclarationsBase<T>
{
protected ArgumentReferenceInspectionFromDeclarationsBase(IDeclarationFinderProvider declarationFinderProvider)
: base(declarationFinderProvider)
{}

protected abstract (bool isResult, T properties) IsUnsuitableArgumentWithAdditionalProperties(ArgumentReference reference, DeclarationFinder finder);

protected override IEnumerable<IdentifierReference> ObjectionableReferences(DeclarationFinder finder)
{
return ObjectionableDeclarations(finder)
.OfType<ParameterDeclaration>()
.SelectMany(parameter => parameter.ArgumentReferences);
}

protected override (bool isResult, T properties) IsResultReferenceWithAdditionalProperties(IdentifierReference reference, DeclarationFinder finder)
{
if (!(reference is ArgumentReference argumentReference))
{
return (false, default);
}

return IsUnsuitableArgumentWithAdditionalProperties(argumentReference, finder);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
using System.Collections.Generic;
using System.Linq;
using Rubberduck.CodeAnalysis.Inspections.Results;
using Rubberduck.Parsing.Symbols;
using Rubberduck.Parsing.VBA;
using Rubberduck.Parsing.VBA.DeclarationCaching;
using Rubberduck.VBEditor;

namespace Rubberduck.CodeAnalysis.Inspections.Abstract
{
internal abstract class DeclarationInspectionBase : DeclarationInspectionBaseBase
{
protected DeclarationInspectionBase(IDeclarationFinderProvider declarationFinderProvider, params DeclarationType[] relevantDeclarationTypes)
: base(declarationFinderProvider, relevantDeclarationTypes)
{}

protected DeclarationInspectionBase(IDeclarationFinderProvider declarationFinderProvider, DeclarationType[] relevantDeclarationTypes, DeclarationType[] excludeDeclarationTypes)
: base(declarationFinderProvider, relevantDeclarationTypes, excludeDeclarationTypes)
{}

protected abstract bool IsResultDeclaration(Declaration declaration, DeclarationFinder finder);
protected abstract string ResultDescription(Declaration declaration);

protected virtual ICollection<string> DisabledQuickFixes(Declaration declaration) => new List<string>();

protected override IEnumerable<IInspectionResult> DoGetInspectionResults(QualifiedModuleName module, DeclarationFinder finder)
{
var objectionableDeclarations = RelevantDeclarationsInModule(module, finder)
.Where(declaration => IsResultDeclaration(declaration, finder));

return objectionableDeclarations
.Select(InspectionResult)
.ToList();
}

protected virtual IInspectionResult InspectionResult(Declaration declaration)
{
return new DeclarationInspectionResult(
this,
ResultDescription(declaration),
declaration,
disabledQuickFixes: DisabledQuickFixes(declaration));
}
}

internal abstract class DeclarationInspectionBase<T> : DeclarationInspectionBaseBase
{
protected DeclarationInspectionBase(IDeclarationFinderProvider declarationFinderProvider, params DeclarationType[] relevantDeclarationTypes)
: base(declarationFinderProvider, relevantDeclarationTypes)
{}

protected DeclarationInspectionBase(IDeclarationFinderProvider declarationFinderProvider , DeclarationType[] relevantDeclarationTypes, DeclarationType[] excludeDeclarationTypes)
: base(declarationFinderProvider, relevantDeclarationTypes, excludeDeclarationTypes)
{}

protected abstract (bool isResult, T properties) IsResultDeclarationWithAdditionalProperties(Declaration declaration, DeclarationFinder finder);
protected abstract string ResultDescription(Declaration declaration, T properties);

protected virtual ICollection<string> DisabledQuickFixes(Declaration declaration, T properties) => new List<string>();

protected override IEnumerable<IInspectionResult> DoGetInspectionResults(QualifiedModuleName module, DeclarationFinder finder)
{
var objectionableDeclarationsWithAdditionalProperties = RelevantDeclarationsInModule(module, finder)
.Select(declaration => DeclarationWithResultProperties(declaration, finder))
.Where(result => result.HasValue)
.Select(result => result.Value);

return objectionableDeclarationsWithAdditionalProperties
.Select(tpl => InspectionResult(tpl.declaration, tpl.properties))
.ToList();
}

private (Declaration declaration, T properties)? DeclarationWithResultProperties(Declaration declaration, DeclarationFinder finder)
{
var (isResult, properties) = IsResultDeclarationWithAdditionalProperties(declaration, finder);
return isResult
? (declaration, properties)
: ((Declaration declaration, T properties)?) null;
}

protected virtual IInspectionResult InspectionResult(Declaration declaration, T properties)
{
return new DeclarationInspectionResult<T>(
this,
ResultDescription(declaration, properties),
declaration,
properties: properties,
disabledQuickFixes: DisabledQuickFixes(declaration, properties));
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
using System.Collections.Generic;
using System.Linq;
using Rubberduck.Parsing.Symbols;
using Rubberduck.Parsing.VBA;
using Rubberduck.Parsing.VBA.DeclarationCaching;
using Rubberduck.VBEditor;

namespace Rubberduck.CodeAnalysis.Inspections.Abstract
{
/// <summary>
/// This is a base class for the other declaration inspection base classes. It should not be implemented directly by concrete inspections.
/// </summary>
internal abstract class DeclarationInspectionBaseBase : InspectionBase
{
private readonly DeclarationType[] _relevantDeclarationTypes;
private readonly DeclarationType[] _excludeDeclarationTypes;

protected DeclarationInspectionBaseBase(IDeclarationFinderProvider declarationFinderProvider, params DeclarationType[] relevantDeclarationTypes)
: base(declarationFinderProvider)
{
_relevantDeclarationTypes = relevantDeclarationTypes;
_excludeDeclarationTypes = new DeclarationType[0];
}

protected DeclarationInspectionBaseBase(IDeclarationFinderProvider declarationFinderProvider, DeclarationType[] relevantDeclarationTypes, DeclarationType[] excludeDeclarationTypes)
: base(declarationFinderProvider)
{
_relevantDeclarationTypes = relevantDeclarationTypes;
_excludeDeclarationTypes = excludeDeclarationTypes;
}

protected override IEnumerable<IInspectionResult> DoGetInspectionResults(DeclarationFinder finder)
{
return finder.UserDeclarations(DeclarationType.Module)
.Concat(finder.UserDeclarations(DeclarationType.Project))
.Where(declaration => declaration != null)
.SelectMany(declaration => DoGetInspectionResults(declaration.QualifiedModuleName, finder))
.ToList();
}

protected virtual IEnumerable<Declaration> RelevantDeclarationsInModule(QualifiedModuleName module, DeclarationFinder finder)
{
var potentiallyRelevantDeclarations = _relevantDeclarationTypes.Length == 0
? finder.Members(module)
: _relevantDeclarationTypes
.SelectMany(declarationType => finder.Members(module, declarationType))
.Distinct();
return potentiallyRelevantDeclarations
.Where(declaration => !_excludeDeclarationTypes.Contains(declaration.DeclarationType));
}
}
}
Loading