You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Go to file
Hugo Thunnissen c35c00ceff
ci/woodpecker/push/woodpecker Pipeline was successful Details
Implement strategy pattern for completion backend
10 months ago
benchmarks Implement Incremental Parsing 10 months ago
test Add some tests for edit tracker + patch newly discovered bugs 10 months ago
.gitignore Add resolvecontext structure and optimze type resolving process 3 years ago
.woodpecker.yml Another attempt at fixing CI 1 year ago
COPYING Add license information 3 years ago
README.md Transition from index script to autoloader 2 years ago
phpinspect-autoload.el Move more functionalities from main file to separate modules 10 months ago
phpinspect-bmap.el Move more functionalities from main file to separate modules 10 months ago
phpinspect-buffer.el Add some tests for edit tracker + patch newly discovered bugs 10 months ago
phpinspect-cache.el Refactor phpinspect--project to phpinspect-project 11 months ago
phpinspect-class.el Implement strategy pattern for completion backend 10 months ago
phpinspect-completion.el Implement strategy pattern for completion backend 10 months ago
phpinspect-edtrack.el Add some tests for edit tracker + patch newly discovered bugs 10 months ago
phpinspect-eldoc.el Move more functionalities from main file to separate modules 10 months ago
phpinspect-fs.el Make file contents insertion asynchronous in background threads 11 months ago
phpinspect-imports.el Fix some bugs introduced by the incremental parsing feature 10 months ago
phpinspect-index.el Implement strategy pattern for completion backend 10 months ago
phpinspect-parser.el Implement strategy pattern for phpinspect-eldoc-function 10 months ago
phpinspect-project.el Move more functionalities from main file to separate modules 10 months ago
phpinspect-queue.el Implement Incremental Parsing 10 months ago
phpinspect-resolve.el Move more functionalities from main file to separate modules 10 months ago
phpinspect-resolvecontext.el Move more functionalities from main file to separate modules 10 months ago
phpinspect-serialize.el Implement Incremental Parsing 10 months ago
phpinspect-suggest.el Implement strategy pattern for completion backend 10 months ago
phpinspect-type.el Implement strategy pattern for completion backend 10 months ago
phpinspect-util.el Move more functionalities from main file to separate modules 10 months ago
phpinspect-worker.el Implement Incremental Parsing 10 months ago
phpinspect.el Implement strategy pattern for completion backend 10 months ago

README.md

phpinspect.el

WIP. More documentation is in the making.

Example config

;;;###autoload
(defun my-php-personal-hook ()
  ;; It is important to enable `company-mode' before setting
  ;; the variables below.
  (company-mode)
  (setq-local company-minimum-prefix-length 0)
  (setq-local company-tooltip-align-annotations t)
  (setq-local company-idle-delay 0.1)
  (setq-local company-backends '(phpinspect-company-backend))

  ;; Shortcut to add use statements for classes you use.
  (define-key php-mode-map (kbd "C-c u") 'phpinspect-fix-imports)

  ;; Shortcuts to quickly search/open files of PHP classes.
  (global-set-key (kbd "C-c a") 'phpinspect-find-class-file)
  (global-set-key (kbd "C-c c") 'phpinspect-find-own-class-file)

  (phpinspect-mode))

(add-hook 'php-mode-hook #'my-php-personal-hook)

Install

git clone https://git.snorba.art/hugo/phpinspect.el ~/projects/phpinspect.el
(add-to-list 'load-path "~/projects/phpinspect.el")
(require 'phpinspect)

Development

Running tests

Tests are implemented using ert. You can run them in batch mode with the following command:

emacs -L ./ -batch -l ert -l ./phpinspect.el -l ./test/phpinspect-test.el -f ert-run-tests-batch-and-exit