diff options
author | Jesús <heckyel@hyperbola.info> | 2018-08-07 20:07:43 -0500 |
---|---|---|
committer | Jesús <heckyel@hyperbola.info> | 2018-08-07 20:07:43 -0500 |
commit | af69d7169661b8970bd832d9d776702b3a8671e9 (patch) | |
tree | 4bfc23979451bade64a4548128285f5a6d9223b8 /lisp/init-php.el | |
parent | f383a5ca9a3cf7988809c278ee61f3e7e3bb2d30 (diff) | |
download | emacs-personal-af69d7169661b8970bd832d9d776702b3a8671e9.tar.lz emacs-personal-af69d7169661b8970bd832d9d776702b3a8671e9.tar.xz emacs-personal-af69d7169661b8970bd832d9d776702b3a8671e9.zip |
Added support PHP and smarty-mode
Diffstat (limited to 'lisp/init-php.el')
-rw-r--r-- | lisp/init-php.el | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/lisp/init-php.el b/lisp/init-php.el new file mode 100644 index 0000000..03648d0 --- /dev/null +++ b/lisp/init-php.el @@ -0,0 +1,65 @@ +(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) + (fci-mode 0) + (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) |