* Attribute, analyzer, and tests
* Add attribute to EntitySystem methods
* Code fixer for redundant method name
* Code fixer for proxy substitution
* Comments
* Improve error message when target method is not found
* Modify AddComp signature to match AddComponent (Component -> IComponent)
* Revert "Modify AddComp signature to match AddComponent (Component -> IComponent)"
This reverts commit 1939d11765.
* Check that proxy and target have matching type constraints
* Reapply "Modify AddComp signature to match AddComponent (Component -> IComponent)"
This reverts commit a65ea71b9b.
Might as well include this, since the file needs to be changed anyway.
* Boost efficiency by only searching for proxy methods once.
Previously we searched with each method invocation.
This also lets us skip analysis on classes with no proxy methods available.
* Revert unrelated change
* Fine, I'll do it properly
* Misleading method name
* Preserve trivia when when replacing method
* Prevent flagging method calls on non-member variables
* Prevent flagging method calls on other classes
* Switch to new HasAttribute helper
* comment fix
* Switch ProxyMethod from struct to class
* Kill TryGetAttributeSyntax
* Move member owner check to helper
* Use helper for proxy method search
* meh
* A little bit of documentation never hurt anybody
* Test attributes
* Convert AnalyzeDeclaration from SyntaxNodeAction to OperationAction
* You can keep the comment though
* feat: add analyzer for AfterAutoHandleStateEvent
* fix: correct TestOf attribute
Oopsieeeee.
Also weird newline plus unused import.
* Rerun content tests
* refactor: use ==, not .Contains
* feat: make AttributeHelper.HasAttribute looser
* refactor: use AttributeHelper.HasAttribute
* perf: cache AutoGenStateAttribute's type
* refactor: more pattern matching
ElementAtOrDefault with constant arg is bad; just use positional
matching.
* Source gen reorganizations + component unpause generator.
This commit (and subsequent commits) aims to clean up our Roslyn plugin (source gens + analyzers) stack to more sanely re-use common code
I also built a new source-gen that automatically generates unpausing implementations for components, incrementing attributed TimeSpan field when unpaused.
* Fix warnings in all Roslyn projects