Skip to content
2011/04/08 / highmt

javaプロパティファイルを変換するconf-javaprop-mode拡張

環境:GNU Emacs 23.2.1 (i386-mingw-nt6.1.7601)

たいしたもんじゃありませんが
eclipseを立ち上げるまでもないちょっとした確認をしたいときに…

(require ‘jprop) すれば、 conf-javaprop-mode に
\C-cc:バッファ全体を日本語へ変換した結果を*jprop*バッファに出力する
\C-cr:選択範囲を日本語への変換結果を*jprop*バッファに出力する
などが追加されます。
プレフィクスつければ逆になります。

あとは jprop-native2ascii-path を変更するなり
jprop-mode-map を変更するなり
適当にアドバイズするなり
全面的に書き換えるなり。

;;; jprop.el

(defcustom jprop-native2ascii-path
  (let ((command "native2ascii")
        (jdk-path (getenv "JAVA_HOME")))
    (if jdk-path
        (expand-file-name command (expand-file-name "bin" jdk-path))
      command))
  "jdk native2ascii command path."
  :type 'string
  :group 'jprop)

(defvar jprop-mode-map
  (let ((m (make-sparse-keymap)))
    (define-key m "\C-cc" 'jprop-convert-buffer-to-buffer)
    (define-key m "\C-cr" 'jprop-convert-region-to-buffer)
    m))


(defun jprop-convert-region-to-1 (rev start end buff)
  (let ((command (concat jprop-native2ascii-path (if rev "" " -reverse"))))
    (save-excursion
      (shell-command-on-region start end command buff nil "*jprop-error*" t))))

(defun jprop-convert-region-to (rev start end buff)
  (let ((coding-system-for-read 'japanese-shift-jis-dos)
        (coding-system-for-write 'japanese-shift-jis-unix))
    (jprop-convert-region-to-1 rev start end buff)))

(defun jprop-convert-region-to-buffer (rev start end)
  (interactive "P\nr")
  (jprop-convert-region-to rev start end (get-buffer-create "*jprop*")))
(defun jprop-convert-buffer-to-buffer (rev)
  (interactive "P")
  (jprop-convert-region-to-buffer rev (point-min) (point-max)))

(defun jprop-convert-region (rev start end)
  (interactive "P\nr")
  (jprop-convert-region-to rev start end t))
(defun jprop-convert-buffer (rev)
  (interactive "P")
  (jprop-convert-region rev (point-min) (point-max)))

(add-hook 'conf-javaprop-mode-hook
          (lambda ()
            (let ((m (copy-keymap jprop-mode-map)))
              (set-keymap-parent m conf-javaprop-mode-map)
              (use-local-map m))))

(provide 'jprop)
広告

One Comment

Trackbacks

  1. emacs で javascript を整形する « 日々の反省1

現在コメントは受け付けていません。

%d人のブロガーが「いいね」をつけました。