Commit Graph

174 Commits (master)
 

Author SHA1 Message Date
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.
10 months ago
Hugo Thunnissen 6627f6f76f Remove commented parser code
ci/woodpecker/push/woodpecker Pipeline was successful Details
10 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
10 months ago
Hugo Thunnissen ad5ede01ad Implement Incremental Parsing
ci/woodpecker/push/woodpecker Pipeline was successful Details
10 months ago
Hugo Thunnissen 0ca527dbbd Adapt `phpinspect-purge-parser-cache' to new parser caching approach
ci/woodpecker/push/woodpecker Pipeline was successful Details
10 months ago
Hugo Thunnissen 58ad65932b Add `phpinspect-parser' type and `phpinspect-defparser' macro
ci/woodpecker/push/woodpecker Pipeline was successful Details
10 months ago
Hugo Thunnissen e7b1f22e8c Sort tokens by size when returning tokens around point 10 months ago
Hugo Thunnissen 3838e02820 Prevent worker thread from associating with the current buffer
ci/woodpecker/push/woodpecker Pipeline was successful Details
10 months ago
Hugo Thunnissen 0e00d7e5a6 Wakeup worker when stop is requested and worker thread is paused
This makes the worker thread stop execution immediately after the stop is
requested in stead of after the next wakeup.
10 months ago
Hugo Thunnissen f9f3440850 Make file contents insertion asynchronous in background threads
ci/woodpecker/push/woodpecker Pipeline was successful Details
This allows for a more lenient pausing regime in the worker thread, as file
content insertion, which is the longest running action while indexing, no longer
makes the main thread wait.

Implementation uses host system's cat program, but defers to
insert-file-contents when this is not available.
10 months ago
Hugo Thunnissen 47335f3450 Refactor phpinspect--project to phpinspect-project
ci/woodpecker/push/woodpecker Pipeline was successful Details
10 months ago
Hugo Thunnissen c2b06fe265 Another attempt at fixing CI
ci/woodpecker/push/woodpecker Pipeline was successful Details
1 year ago
Hugo Thunnissen 7e7914befa Convert CI definition to new (woodpecker) format 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 8cd4dc2025 Remove commented code + tidy some formatting 1 year ago
Hugo Thunnissen 224bbd7916 Implement array member type inference
phpinspect now understands typed arrays!
1 year ago
Hugo Thunnissen ae3acbdbe1 Disable auto-reindexing by default
continuous-integration/drone/push Build is passing Details
2 years 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 1816495538 Use thread-live-p in stead of thread-alive-p for emacs 28.1 support
continuous-integration/drone/push Build is passing Details
2 years ago
Hugo Thunnissen 2fd575dbf5 Add drone.yml
continuous-integration/drone/push Build is failing Details
2 years ago
Hugo Thunnissen 0bc9e795b2 Fix tests and patch bugs that came to light in the process 2 years ago
Hugo Thunnissen 3a3e2cd362 Update README with new development repository location 2 years ago
Hugo Thunnissen 0b210309e7 Fix variable suggestion when there are loose dollar signs in the buffer 2 years ago
Hugo Thunnissen c0786db131 WIP: Index every possibly required type ahead of time.
- Changed project and after-save-action implementation to include imports in
  opened files. This way any types that are used in a file will have completion
  available for it ahead of time.
- Extra attributes have been added to phpinspect--class to check whether or not
  its file has been indexed/is queued for indexation yet.
- Misc: Fixed eldoc function bug that was caused by a previous commit
2 years ago
Hugo Thunnissen 2e487e7810 Fix resolving of function argument types 2 years ago
Hugo Thunnissen a2ce841555 WIP: Make index thread block/wakeup when queue is empty/populated 2 years ago
Hugo Thunnissen 341afd42da WIP: Index types in the background using collaborative threading.
Created queue for types to be indexed in separate thread and tried to limit
lock-ups as much as possible by using idle timers.
2 years ago
Hugo Thunnissen f013b3c709 WIP: Support ambiguous typehints
- Try to infer type of "object" typehint by using the return annotation
- Support late static binding with "static" and "this" return type
2 years ago
Hugo Thunnissen f8bf0b611a WIP: List static methods when requested 2 years ago
Hugo Thunnissen 98e88d45ac WIP: Fix find-class-file 2 years ago
Hugo Thunnissen e07e1ed9e6 WIP: Split code up into separate files 2 years ago
Hugo Thunnissen 74bd0ad434 WIP: New data type for cached classes 2 years ago
Hugo Thunnissen a60dba5f11 WIP: new struct to represent types, and string comparison optimization with obarray 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 e57edab86e Index new files when no FQN can be found for a type 3 years ago