1 (defun yas/objc-docset-query (query)
4 (defvar yas/objc-method-names (make-vector 1023 0))
5 (defvar yas/objc-class-names (make-vector 1023 0))
7 (defvar yas/objc-languages (list))
8 (defvar yas/objc-defkinds (list))
11 (defun yas/objc-extract-super-list ()
13 (setq yas/objc-method-names (make-vector 1023 0)
14 yas/objc-class-names (make-vector 1023 0)
15 yas/objc-languages (list)
16 yas/objc-defkinds (list))
19 "/Developer/usr/bin/docsetutil dump -skip-text /Developer/Documentation/DocSets/com.apple.adc.documentation.AppleSnowLeopard.CoreReference.docset/"
21 (goto-char (point-min))
22 (search-forward-regexp "API index contains .* tokens")
23 (while (search-forward-regexp "^\\([^/]*\\)/\\([^/]*\\)/\\([^/]*\\)/\\([^/]*\\)$" nil 'noerror)
24 (intern (match-string 3) yas/objc-class-names)
25 (intern (match-string 4) yas/objc-method-names)
26 (add-to-list 'yas/objc-languages (match-string 1))
27 (add-to-list 'yas/objc-defkinds (match-string 2)))))
29 ;; (put (intern-soft (setq chosen (completing-read "Method: " yas/objc-method-names)) yas/objc-method-names)
33 ;; (completing-read "Class: " yas/objc-class-names)
35 ;; (get (intern-soft (setq chosen (completing-read "hey: " yas/objc-method-names)) yas/objc-method-names)
38 (defun yas/objc-current-method-signature ()
39 (let ((orig-point (point))
46 (while (not (eq (point) (point-min))) (backward-sexp))
48 (when (eq (preceding-char) ?\[)
49 (setq orig-ppss (syntax-ppss))
51 (skip-chars-forward " \t\n")
52 (setq ppss (syntax-ppss))
53 (while (and (>= (car ppss) (car orig-ppss))
54 (search-forward-regexp "[[:alpha:]]+:" nil 'noerror))
55 (setq ppss (syntax-ppss))
56 (when (eq (car ppss) (car orig-ppss))
58 (concat (or sig "") (match-string-no-properties 0)))))
61 (defun yas/objc-current-method-signature ()
62 (let ((orig-point (point))
69 (while (not (eq (point) (point-max))) (backward-sexp))
71 (when (eq (preceding-char) ?\[)
72 (setq orig-ppss (syntax-ppss))
74 (skip-chars-forward " \t\n")
75 (setq ppss (syntax-ppss))
77 (while (and (>= (car ppss) (car orig-ppss))
78 (search-forward-regexp "[[:alpha:]]+:" orig-point 'noerror))
79 (setq ppss (syntax-ppss))
80 (when (eq (car ppss) (car orig-ppss))
82 (concat (or sig "") (match-string-no-properties 0))))
87 (concat sig (buffer-substring-no-properties (point) orig-point)))