Hello,
Here is a command to sort Java import statement which use the semantic
parser table provided since JDE 2.1.6 beta 24.
(defun my-jde-sort-imports (&optional reverse)
"Sort Java import statements alphabetically. In reverse order if
REVERSE is non-nil.
Usage:
\\[my-jde-sort-imports] sort import statements ascending.
\\[universal-argument] \\[my-jde-sort-imports] sort descending.
The the current buffer must be in `jde-mode'. This command uses the
semantic Java parser and requires JDE 2.1.6-beta24 and above."
(interactive "P")
(or (eq major-mode 'jde-mode)
(error "Invalid major mode found. Must be 'jde-mode'."))
(or (and (local-variable-p 'semantic-toplevel-bovine-table)
(symbol-value 'semantic-toplevel-bovine-table))
(error "Semantic Java parser not found. JDE 2.1.6-beta24+
needed."))
(and (interactive-p)
(consp current-prefix-arg)
(setq reverse t))
(let* ((tokens (semantic-bovinate-toplevel nil nil t))
(depends (semantic-find-nonterminal-by-token 'include tokens)))
(if depends
(let* ((first-import-token (car depends))
(last-import-token (nth (1- (length depends)) depends))
(start (semantic-token-start first-import-token))
(end (semantic-token-end last-import-token)))
(if (and start end)
(let (sort-fold-case)
(sort-lines reverse start end)
(goto-char start)))))))
Hope this will help.
Sincerely,
David