Commit Graph

52 Commits (daf070a083cddaf0ac6c312fae48c900577a73f8)

Author SHA1 Message Date
Hugo Thunnissen 84ddaf1dc2 Fix all byte compilation warnings and errors (for real this time (probably))
ci/woodpecker/push/woodpecker Pipeline failed Details
11 months ago
Hugo Thunnissen 68c826243c Keep index synchronized with buffer state 11 months ago
Hugo Thunnissen 04606a4756 Fix test
ci/woodpecker/push/woodpecker Pipeline failed Details
11 months ago
Hugo Thunnissen 55413ea9fb Implement basic support for function indexation and include dirs
ci/woodpecker/push/woodpecker Pipeline failed Details
Does not yet include support for imported namespaced functions
11 months ago
Hugo Thunnissen d86ef5756b Remove `phpinspect-define-pipeline-step' in favor of direct fun call 11 months ago
Hugo Thunnissen f5cc681105 Fix let parenthesis in test-buffer.el 11 months ago
Hugo Thunnissen d51137e58e Remove faulty edit tracker code based on wrong deduction 11 months ago
Hugo Thunnissen 9b82c0d0f6 Reimplement `phpinspect-fix-imports' using metadata objects 11 months ago
Hugo Thunnissen 135263c533 Add tests for incremental parsing + fix parser bugs that came to light 11 months ago
Hugo Thunnissen db370623da Implement "files" autoload strategy 11 months ago
Hugo Thunnissen f003b6a279 Make project indexation asynchronous using `phpinspect-pipeline'
ci/woodpecker/push/woodpecker Pipeline failed Details
11 months ago
Hugo Thunnissen 2fd91898a3 Add tests for pipeline and make API more ergonomic
- Added `phpinspect-pipeline-emit-all' to emit multiple values at once
- Added :async parameter to `phpinspect-pipeline'
- Improved error handling
- Only execute seed form once and require it to return a list
11 months ago
Hugo Thunnissen 2d2f9912c1 Wrap queue items in a queue object
ci/woodpecker/push/woodpecker Pipeline failed Details
11 months ago
Hugo Thunnissen 9a25959aad Use metadata tree instead of hash table for token lookup 11 months ago
Hugo Thunnissen b68baaec83 Make parse context cancellable and restore state after interrupt 11 months ago
Hugo Thunnissen 111fa2f4b5 Fix bugs in splay tree "find" functions 11 months ago
Hugo Thunnissen 389e77eb8b Expand existing overlay when possible 11 months ago
Hugo Thunnissen 0596bc52bf Optimize splay tree and use it to store token's children
ci/woodpecker/push/woodpecker Pipeline was successful Details
11 months ago
Hugo Thunnissen e270729e14 Implement splay tree for overlay storage/lookup
ci/woodpecker/push/woodpecker Pipeline was successful Details
This makes repeated overlay lookups during incremental parsing or buffer
analysis more efficient.
11 months ago
Hugo Thunnissen 75562aab35 Add some tests for edit tracker + patch newly discovered bugs 11 months ago
Hugo Thunnissen 5fab07b426 Keep track of multi-call edits of the same region 11 months ago
Hugo Thunnissen bb04e9a0f8 Implement strategy pattern for phpinspect-eldoc-function 11 months ago
Hugo Thunnissen 9d6ce5726d Use `phpinspect-edtrack-original-position-at-point' for edit end determination 12 months ago
Hugo Thunnissen 91e24b97d4 Make bmap-token-meta error on unexpected input
Searching for an object that doesn't exist as a token can be really expensive,
so it's better to error on unexpected input and fix code on the calling side.
12 months ago
Hugo Thunnissen 7f76ba4c11 Fix some bugs introduced by the incremental parsing feature
ci/woodpecker/push/woodpecker Pipeline was successful Details
Among other things:

- use-keyword parser handler result being registered for two positions due to
wrong use of "root" parser parameter.
- phpinspect-fix-imports was broken
12 months ago
Hugo Thunnissen ad5ede01ad Implement Incremental Parsing
ci/woodpecker/push/woodpecker Pipeline was successful Details
12 months ago
Hugo Thunnissen 47335f3450 Refactor phpinspect--project to phpinspect-project
ci/woodpecker/push/woodpecker Pipeline was successful Details
1 year ago
Hugo Thunnissen 9882ed2c60 Test/fix type inference of objects in nested arrays
continuous-integration/drone/push Build was killed Details
1 year ago
Hugo Thunnissen f030a685d2 Alter interpret-expression-type to interpret array-member assignment
continuous-integration/drone/push Build was killed Details
interpret-expression-type now interprets assignment values provided through
array access as derived statements. This makes type inference work for cases
like `[$foo[0]]`, where it did not before.
1 year ago
Hugo Thunnissen 0c0c1ca381 Add test for phpinspect-get-pattern-type-in-block
continuous-integration/drone/push Build was killed Details
1 year ago
Hugo Thunnissen 224bbd7916 Implement array member type inference
phpinspect now understands typed arrays!
1 year ago
Hugo Thunnissen 97377c2922 Fix bugs in phpinspect-fix-imports
continuous-integration/drone/push Build is passing Details
2 years ago
Hugo Thunnissen 1b1cf45638 Fix bug in extended classes' method merging + add some tests
continuous-integration/drone/push Build is passing Details
2 years ago
Hugo Thunnissen e65b268cea Implement @method annotation indexation
continuous-integration/drone/push Build is passing Details
2 years ago
Hugo Thunnissen 350850c07a Fix phpinspect-index-static-methods test
continuous-integration/drone/push Build is passing Details
2 years ago
Hugo Thunnissen dbf0ec0390 Transition from index script to autoloader
continuous-integration/drone/push Build is failing Details
2 years ago
Hugo Thunnissen ca8d0972ff Implement psr-0 and psr-4 autoloaders 2 years ago
Hugo Thunnissen ef9a7336cf Replace virtual-directory with more general virtual-fs implementation 2 years ago
Hugo Thunnissen 153ff71fcf WIP: Implement psr0 and psr4 autoload strategies
continuous-integration/drone/push Build is passing Details
2 years ago
Hugo Thunnissen 43ab1bd99b Make sure that the worker is running during tests
continuous-integration/drone/push Build is passing Details
continuous-integration/drone Build is passing Details
2 years ago
Hugo Thunnissen 56eaa3b36d Replace index-thread with more generic and encapsulated worker type
continuous-integration/drone/push Build is failing Details
The new implementaiton makes the background thread more extensible in terms of
the types of tasks that it can execute. It also allows for the injection of a
worker as dependency of project instances, which will make automated testing
easier in the future.
2 years ago
Hugo Thunnissen 0bc9e795b2 Fix tests and patch bugs that came to light in the process 2 years ago
Hugo Thunnissen 2b85271b2b Test + fix get-last-statement-in-token for static attribute references 3 years ago
Hugo Thunnissen 8caf967b57 Add test for resolve-type-from-context with preceding bareword 3 years ago
Hugo Thunnissen 6b8db3a318 Test and fix eldoc function for static methods
Add tests for
- phpinspect-eldoc-function in the context of static attribute and object attribute references
- phpinspect-resolve-type-from-context in the context of static attribute references

Fix:
- phpinspect-get-derived-statement-type-in-block
3 years ago
Hugo Thunnissen f5fe299c01 Make functions that access the filesystem configurable and add test
Add test for `phpinspect-resolve-type-from-context'
3 years ago
Hugo Thunnissen a6bb09b2b3 Test and fix static function indexation 3 years ago
Hugo Thunnissen faa936a4f0 Test type-resolver + make type resolving work for "blocked" namespaces
Test type-resolver created from resolvecontext with:
 - File containing single namespace and no block
 - File containing one namespace with a block ('{}')
 - File containing multiple namespaces with blocks

Patch `phpinspect--make-type-resolver-for-resolvecontext' to support namespaces with
blocks.
3 years ago
Hugo Thunnissen 098146bfc5 Add resolvecontext structure and optimze type resolving process
The resolvecontext will from now on be used as store for all data required to resolve the
return type of a statement at any given point.

`phpinspect--word-end-regex` has been altered to match words that are directly followed by
other, "non-word" characters.

`phpinspect-describe-handler` has been added to list and describe handlers during runtime.

A bug has been fixed that made the parser interpret the "static" keyword inside functions
as a class attribute in stead of just a word.

Aside from the company backend, `phpinspect-eldoc-function` has been simplified and
adapted to make use of the resolvecontext structure.

The resolving of statment/variable types has been altered to make use of imperative loops
in a couple of places for the sake of simplicity and optimization.
3 years ago
Hugo Thunnissen e8f486f095 Improve codestyle and documentation + add tests for indexation
This commit contains one logic change: Changed add-to-list usage to cl-pushnew in
phpinspect-merge-indexes implementation for classes. The resulting function output should
be the same.
3 years ago