(require 'stringtools) (require 'abbrevtools) (setq java-abbrev-list (list (cons "cl" "class ") (cons "in" "interface ") (cons "im" "implements ") (cons "ex" "extends ") (cons "sy" "synchronized ") (cons "(" "(|) {\n}\n") (cons "ife" "if (|) {\n} else {\n}") (cons "if" "if (|) {\n}") (cons "for" "for (|; ; ) {\n}") (cons "do" "do {\n|\n} while ()") (cons "while" "while (|) {\n}") (cons "tcf" "try {\n|\n} catch (Exception e) {\n} finally {\n}") (cons "tc" "try {\n|\n} catch (Exception e) {\n}") (cons "tf" "try {\n|\n} finally {\n}") (cons "*" "/* | */") (cons "**" "/**\n* |\n*/") (cons ".^" ".startsWith(|)") (cons ".$" ".endsWith(|)") (cons ".=" ".equals(|)") (cons ".!" ".equals(|)==false") (cons ".eic" ".equalsIgnoreCase(|)") (cons ".tlc" ".toLowerCase()|") (cons ".tuc" ".toUpperCase()|") (cons ".pst" ".printStackTrace(|)") (cons ".//" ".trim()|") (cons ".>" ".compareTo(|)>0") (cons ".>=" ".compareTo(|)>=0") (cons ".<" ".compareTo(|)<0") (cons ".<=" ".compareTo(|)<=0") (cons ".==" ".compareTo(|)==0") (cons ".compareTo(" ".compareToIgnoreCase(|") (cons ".compareToIgnoreCase(" ".compareTo(|") (cons "2St" "String.valueOf(|)") (cons "main" "public static void main(String argv[])\n{\n|\n}\n") (cons "@p" "@param |") (cons "@r" "@return |") (cons "@e" "@exception |") (cons ".\"" ".println(|)") (cons ".|" ".flush()|") (cons ".c" ".close()|") (cons ".o" ".open(|)") (cons ".w" ".write(|)") (cons ".r" ".read(|)") (cons ".:" ".clear()|") (cons ".+" ".add(|)") (cons ".add(" ".put(|") (cons ".put(" ".add(|") (cons ".-" ".remove(|)") (cons ".?" ".contains(|)") (cons ".contains(" ".containsKey(|") (cons ".containsKey(" ".containsValue(|") (cons ".containsValue(" ".contains(|") (cons ".<<" ".first()|") (cons ".>>" ".last()|") (cons ".->?" ".hasNext()|") (cons ".hasNext()" ".hasMoreElements()|") (cons ".hasMoreElements()" ".hasNext()|") (cons ".->" ".next()|") (cons ".next()" ".nextElement()|") (cons ".nextElement()" ".next()|") (cons ".[" ".get(|)") (cons ".len" ".length|") (cons ".length" ".length()|") (cons ".length()" ".size()|") (cons ".size()" ".length|") (cons ".[:]" ".substring(|)") (cons ".substring(" ".clone(|") (cons ".clone(" ".substring(|") (cons "err" "System.err") (cons "out" "System.out") (cons "true" "false") (cons "false" "true") (cons "St" "String") (cons "In" "Integer") (cons "Lo" "Long") (cons "Do" "Double") (cons "Ob" "Object") (cons "Ex" "Exception") (cons "Ma" "Map") (cons "HM" "HashMap") (cons "HS" "HashSet") (cons "HT" "HashTree") (cons "It" "Iterator") (cons "|;" "break;|") (cons ">;" "continue;|") (cons "1" "true") (cons "0" "false") (cons "+" "public ") (cons "#" "protected ") (cons "-" "private ") (cons "_" "static ") (cons "0/" "void ") (cons "0x" "final ") (cons "public" "protected") (cons "protected" "private") (cons "private" "public") ) ) (setq java-backward-separator '(" " " " ".")) (setq java-abbrev-list (reverse (sort java-abbrev-list 'sort-fct))) (defun java-expand-abbrev () (interactive) (expand-abbrev java-abbrev-list) ) (defun java-cast () (interactive) (backward-word 1) (insert "(") (forward-word 1) (insert ")")) (defun java-generate-doc-method() "Document method at point. manque exception + retour" (interactive) (catch 'error (let ((pos (point))) (save-excursion (let* ((tmp (buffer-substring (mark) (point))) (args (substring tmp (+ (index-of "(" tmp) 1) (- (last-index-of ")" tmp) 1))) (liste (split-string args ",")) (has-throw (index-of "throws" tmp)) (has-void (index-of "void" tmp)) ) (goto-char (mark)) (insert "/**\n* |\n") (mapcar (lambda (x) (insert (concat "* @param " (cadr (split-string x)) (if (and (index-of "\\[" x) (index-of "\\[" (car (split-string x))) ) "[]") " \n"))) liste) (unless has-void (insert "* @return \n")) (if has-throw (progn (setq args (substring tmp (+ (index-of "throws" tmp) 6) (if (index-of "{" tmp) (index-of "{" tmp) (length tmp)))) (setq liste (split-string args ",")) (mapcar (lambda (x) (insert (concat "* @exception " (strip x) " \n"))) liste))) (insert "*\n*/\n") (indent-region (mark) (point) nil) (search-backward "|") (setq pos (point)) )) (goto-char pos) (delete-char 1)))) (local-set-key [?\e ?\(] 'java-cast) (local-set-key [?\e ?j] 'java-expand-abbrev) (local-set-key [?\e ?h] 'java-generate-doc-method) (provide 'java-abbrev)