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 f030a685d2
continuous-integration/drone/push Build was killed Details
Alter interpret-expression-type to interpret array-member assignment
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
test Alter interpret-expression-type to interpret array-member assignment 1 year ago
.drone.yml Add drone.yml 2 years ago
.gitignore Add resolvecontext structure and optimze type resolving process 3 years ago
COPYING Add license information 3 years ago
README.md Transition from index script to autoloader 1 year ago
phpinspect-autoload.el Transition from index script to autoloader 1 year ago
phpinspect-buffer.el Transition from index script to autoloader 1 year ago
phpinspect-cache.el Implement array member type inference 1 year ago
phpinspect-class.el Fix bug in extended classes' method merging + add some tests 1 year ago
phpinspect-fs.el Implement psr-0 and psr-4 autoloaders 1 year ago
phpinspect-imports.el Fix bugs in phpinspect-fix-imports 1 year ago
phpinspect-index.el Implement array member type inference 1 year ago
phpinspect-parser.el Implement array member type inference 1 year ago
phpinspect-project.el Fix bug in extended classes' method merging + add some tests 1 year ago
phpinspect-serialize.el Fix tests and patch bugs that came to light in the process 2 years ago
phpinspect-type.el Implement array member type inference 1 year ago
phpinspect-util.el Remove commented code + tidy some formatting 1 year ago
phpinspect-worker.el Transition from index script to autoloader 1 year ago
phpinspect.el Alter interpret-expression-type to interpret array-member assignment 1 year 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