You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Mark Roder <mr...@wamnet.com> on 2001/10/04 18:55:59 UTC
Emacs import cleanup utility - RE: More Fixes for imports.
Here is some emacs functions to clean up imports in a java file.
Disclaimer - works good enough for me, your results ????
;;;
;;; Java import cleanup
;;;
(defconst java-import-regexp
"^import")
(defconst java-blank-line-regexp
"[ \t]*$")
(defconst java-import-class-regexp
"\\(^import[ \t]+\\([a-zA-Z0-9_]+\\.\\)+\\)\\([A-Z][a-zA-Z0-9_]*\\);")
(defun java-fix-imports ()
(interactive "")
(save-excursion
(goto-char (point-min))
(if (re-search-forward java-import-regexp nil t)
(progn
(beginning-of-line)
(let ((start (point))
end
match-string)
;; bracket the import statements, deleting any blank lines
(while (or (looking-at java-import-regexp)
(looking-at java-blank-line-regexp))
(if (looking-at java-blank-line-regexp)
(kill-line)
(beginning-of-line 2))
)
(setq end (point))
;; sort the imports and restore the blank line after the last
one.
(sort-lines nil start end)
(open-line 1)
;; Walk through the imports, separate them by package name, and
;; validate them. Comment out the unused ones.
(goto-char start)
(while (looking-at java-import-class-regexp)
(let ((package (match-string 1))
(class (match-string 3)))
(if (null
(save-excursion
(beginning-of-line 2)
(word-search-forward class nil t)))
(insert "//remove//"))
(beginning-of-line 2)
(if (null
(looking-at package))
(newline-and-indent))
)
)
)
)
;; there aren't any import statements here
)
)
)
;;;
;;; - used after java-fix-import to remove the bad imports
(defun java-fix-imports-remove-bad-imports()
"Remove bad imports that were generated with
java-fix-imports-buffer"
(interactive)
(replace-regexp "^//remove//import.*$" "" )
(java-fix-imports))
-----Original Message-----
From: marc fleury
To: axis-dev@xml.apache.org
Sent: 10/4/01 8:19 AM
Subject: RE: More Fixes for imports.
|Last go around, I rejected conflicts which were simply due to
reordering.
|And manually applied fixes to conflicts which were substantive.
|
|This patch does simply reorder some imports, but more importantly it
|removes a fair number of unnecessary ones.
Are you saying you have a tool that cleans up the imports that are not
used?
Can you share that? As an ANT script? That would be righteous...
marcf
|
|It also, to my surpise, replaces specific swing imports with "*" in the
|case of TCPMon.
|
|Clearly there appears to be a tool involved, and a threshhold being
|exceeded. Dims - care to share with us how you did this magic?
|
|- Sam Ruby
|
RE: Emacs import cleanup utility - RE: More Fixes for imports.
Posted by marc fleury <ma...@jboss.org>.
righteous alright!
and if you had the emacs commands to run it on a tree recursively that would
be great (excuse my ignorance in emacs)
thanks
marcf
|-----Original Message-----
|From: Mark Roder [mailto:mroder@wamnet.com]
|Sent: Thursday, October 04, 2001 12:56 PM
|To: 'axis-dev@xml.apache.org'
|Subject: Emacs import cleanup utility - RE: More Fixes for imports.
|
|
|
|Here is some emacs functions to clean up imports in a java file.
|
|Disclaimer - works good enough for me, your results ????
|
|
|;;;
|;;; Java import cleanup
|;;;
|(defconst java-import-regexp
| "^import")
|(defconst java-blank-line-regexp
| "[ \t]*$")
|(defconst java-import-class-regexp
| "\\(^import[ \t]+\\([a-zA-Z0-9_]+\\.\\)+\\)\\([A-Z][a-zA-Z0-9_]*\\);")
|
|(defun java-fix-imports ()
| (interactive "")
| (save-excursion
| (goto-char (point-min))
| (if (re-search-forward java-import-regexp nil t)
| (progn
| (beginning-of-line)
| (let ((start (point))
| end
| match-string)
|
| ;; bracket the import statements, deleting any blank lines
| (while (or (looking-at java-import-regexp)
| (looking-at java-blank-line-regexp))
| (if (looking-at java-blank-line-regexp)
| (kill-line)
| (beginning-of-line 2))
| )
| (setq end (point))
|
| ;; sort the imports and restore the blank line after the last
|one.
| (sort-lines nil start end)
| (open-line 1)
|
| ;; Walk through the imports, separate them by package
|name, and
| ;; validate them. Comment out the unused ones.
| (goto-char start)
| (while (looking-at java-import-class-regexp)
| (let ((package (match-string 1))
| (class (match-string 3)))
| (if (null
| (save-excursion
| (beginning-of-line 2)
| (word-search-forward class nil t)))
| (insert "//remove//"))
| (beginning-of-line 2)
| (if (null
| (looking-at package))
| (newline-and-indent))
| )
| )
| )
| )
| ;; there aren't any import statements here
| )
| )
| )
|
|
|;;;
|;;; - used after java-fix-import to remove the bad imports
|(defun java-fix-imports-remove-bad-imports()
| "Remove bad imports that were generated with
|java-fix-imports-buffer"
| (interactive)
| (replace-regexp "^//remove//import.*$" "" )
| (java-fix-imports))
|
|
|
|
|
|
|
|-----Original Message-----
|From: marc fleury
|To: axis-dev@xml.apache.org
|Sent: 10/4/01 8:19 AM
|Subject: RE: More Fixes for imports.
|
||Last go around, I rejected conflicts which were simply due to
|reordering.
||And manually applied fixes to conflicts which were substantive.
||
||This patch does simply reorder some imports, but more importantly it
||removes a fair number of unnecessary ones.
|
|Are you saying you have a tool that cleans up the imports that are not
|used?
|
|Can you share that? As an ANT script? That would be righteous...
|
|marcf
|
||
||It also, to my surpise, replaces specific swing imports with "*" in the
||case of TCPMon.
||
||Clearly there appears to be a tool involved, and a threshhold being
||exceeded. Dims - care to share with us how you did this magic?
||
||- Sam Ruby
||