Commit Graph

30 Commits (master)

Author SHA1 Message Date
Hugo Thunnissen 42c7bd2715 Handle unsupported annotation styles gracefully
ci/woodpecker/push/woodpecker Pipeline failed Details
1 month ago
Hugo Thunnissen d3eec5c0bd Temporary fix for error upon indexation of anonymous functions 8 months ago
Hugo Thunnissen b82c786346 Fix native compilation warnings
ci/woodpecker/push/woodpecker Pipeline failed Details
9 months ago
Hugo Thunnissen 2d29bce498 Apply overall code quality improvements
ci/woodpecker/push/woodpecker Pipeline failed Details
Even benchmarks and tests now compile without warnings or errors :)

This includes patches from Stefan Monnier:
- https://lists.gnu.org/archive/html/emacs-devel/2023-08/msg00548.html
9 months ago
Hugo Thunnissen ad4b1f25a6 Update copyright statements and apply some code style improvements
ci/woodpecker/push/woodpecker Pipeline failed Details
As suggested by Stefan Monniers patch:
 - https://mail.gnu.org/archive/html/emacs-devel/2023-08/msg00367.html
9 months ago
Hugo Thunnissen 84ddaf1dc2 Fix all byte compilation warnings and errors (for real this time (probably))
ci/woodpecker/push/woodpecker Pipeline failed Details
9 months ago
Hugo Thunnissen 2ff9919e44 Add debug statements + use condition-case-unless-debug for token indexation 9 months ago
Hugo Thunnissen 68c826243c Keep index synchronized with buffer state 9 months ago
Hugo Thunnissen e35caa7e15 Fix a variety of bugs
ci/woodpecker/push/woodpecker Pipeline failed Details
- phpinspect--index-tokens no longer errors upon unexpected return annotation
values
- phpinspect-fixt-imports now also fixes imports outside of classes
- Functions are no longer included in statements when deriving types
9 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
9 months ago
Hugo Thunnissen 05ca0ace20 Fix all remaining byte compiler warnings
ci/woodpecker/push/woodpecker Pipeline failed Details
9 months ago
Hugo Thunnissen 9f7931a7b6 Rework parser for ahead of time byte compilation
ci/woodpecker/push/woodpecker Pipeline failed Details
This commit does away with the JIT approach that byte compiles parser functions
on the go. Some workarounds have been implemented to inline handler functions
while still allowing them to call the parser functions they are used in.
9 months ago
Hugo Thunnissen c35c00ceff Implement strategy pattern for completion backend
ci/woodpecker/push/woodpecker Pipeline was successful Details
9 months ago
Hugo Thunnissen d1d34a4249 Move more functionalities from main file to separate modules 9 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 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 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 e65b268cea Implement @method annotation indexation
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 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 0bc9e795b2 Fix tests and patch bugs that came to light in the process 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 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 e07e1ed9e6 WIP: Split code up into separate files 2 years ago