blob: d4fa09b0929c824f680ed7e12ecd8e3523863f74 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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)
|