diff options
Diffstat (limited to 'lisp/init-php.el')
-rw-r--r-- | lisp/init-php.el | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/lisp/init-php.el b/lisp/init-php.el new file mode 100644 index 0000000..d4fa09b --- /dev/null +++ b/lisp/init-php.el @@ -0,0 +1,64 @@ +(require-package 'php-mode) + +(require-package 'smarty-mode) + +;; From EmacsWiki: https://www.emacswiki.org/emacs/PhpMode +(defun my/php-symbol-lookup () + (interactive) + (let ((symbol (symbol-at-point))) + (if (not symbol) + (message "No symbol at point.") + + (browse-url (concat "https://php.net/manual-lookup.php?pattern=" + (symbol-name symbol)))))) + + +(defun my/php-function-lookup () + (interactive) + (let* ((function (symbol-name (or (symbol-at-point) + (error "No function at point.")))) + (buf (url-retrieve-synchronously (concat "https://php.net/manual-lookup.php?pattern=" function)))) + (with-current-buffer buf + (goto-char (point-min)) + (let (desc) + (when (re-search-forward "<div class=\"methodsynopsis dc-description\">\\(\\(.\\|\n\\)*?\\)</div>" nil t) + (setq desc + (replace-regexp-in-string + " +" " " + (replace-regexp-in-string + "\n" "" + (replace-regexp-in-string "<.*?>" "" (match-string-no-properties 1))))) + + (when (re-search-forward "<p class=\"para rdfs-comment\">\\(\\(.\\|\n\\)*?\\)</p>" nil t) + (setq desc + (concat desc "\n\n" + (replace-regexp-in-string + " +" " " + (replace-regexp-in-string + "\n" "" + (replace-regexp-in-string "<.*?>" "" (match-string-no-properties 1)))))))) + + (if desc + (message desc) + (message "Could not extract function info. Press C-F1 to go the description.")))) + (kill-buffer buf))) + +(require-package 'ac-php) + +(defun my/php-mode-stuff () + (local-set-key (kbd "<f1>") 'my/php-function-lookup) + (local-set-key (kbd "C-<f1>") 'my/php-symbol-lookup) + ;; New versions of PHP have this :) + (php-enable-psr2-coding-style) + (auto-complete-mode t) + (require 'ac-php) + (setq ac-sources '(ac-source-dictionary ac-source-abbrev ac-source-php ) ) + (ac-php-core-eldoc-setup ) ;enable eldoc + (define-key php-mode-map (kbd "C-]") 'ac-php-find-symbol-at-point) ;goto define + (define-key php-mode-map (kbd "C-t") 'ac-php-location-stack-back) ;go back + ) + +(add-hook 'php-mode-hook 'my/php-mode-stuff) + +(myemacs/elapsed-time) +(provide 'init-php) |