@@ -208,13 +208,38 @@ can be used to match against definitions for that classlike."
208
208
; ; allow backslashes in the name to handle namespaces, but again
209
209
; ; this is not necessarily correct for all values of `type' .
210
210
" \\ s-+\\ (\\ (?:\\ sw\\ |\\\\\\ |\\ s_\\ )+\\ )" )))
211
+
212
+ (defconst php-imenu-generic-expression
213
+ (eval-when-compile
214
+ `((" Namespaces"
215
+ ,(php-create-regexp-for-classlike " namespace" ) 1 )
216
+ (" Classes"
217
+ ,(php-create-regexp-for-classlike " class" ) 1 )
218
+ (" Interfaces"
219
+ ,(php-create-regexp-for-classlike " interface" ) 1 )
220
+ (" Traits"
221
+ ,(php-create-regexp-for-classlike " trait" ) 1 )
222
+ (" All Methods"
223
+ ,(php-create-regexp-for-method) 1 )
224
+ (" Private Methods"
225
+ ,(php-create-regexp-for-method '(" private" )) 1 )
226
+ (" Protected Methods"
227
+ ,(php-create-regexp-for-method '(" protected" )) 1 )
228
+ (" Public Methods"
229
+ ,(php-create-regexp-for-method '(" public" )) 1 )
230
+ (" Anonymous Functions"
231
+ " \\ <\\ (\\ (?:\\ sw\\ |\\ s_\\ )+\\ )\\ s-*=\\ s-*f\\ (unctio\\ )?n\\ s-*(" 1 )
232
+ (" Named Functions"
233
+ " ^\\ s-*function\\ s-+\\ (\\ (?:\\ sw\\ |\\ s_\\ )+\\ )\\ s-*(" 1 )))
211
234
" Imenu generic expression for PHP Mode. See `imenu-generic-expression' ." )
212
235
213
- (defvar php--re-namespace-pattern
214
- (php-create-regexp-for-classlike " namespace" ))
236
+ (defconst php--re-namespace-pattern
237
+ (eval-when-compile
238
+ (php-create-regexp-for-classlike " namespace" )))
215
239
216
- (defvar php--re-classlike-pattern
217
- (php-create-regexp-for-classlike (regexp-opt '(" class" " interface" " trait" ))))
240
+ (defconst php--re-classlike-pattern
241
+ (eval-when-compile
242
+ (php-create-regexp-for-classlike (regexp-opt '(" class" " interface" " trait" )))))
218
243
219
244
(defun php-get-current-element (re-pattern )
220
245
" Return backward matched element by RE-PATTERN."
0 commit comments