[Date Prev] [Date Index] [Date Next]
[Thread Prev] [Thread Index] [Thread Next]

[xyzzy:08951] Re: リストから取得した要素について



こんにちは、つるりんです。

ささださん。やなぎうらさんお返事ありがとうございました。 

既出かもしれませんが、目指していた機能が実現できましたの
で掲載させていただきます。
c/cpp ファイルと同名の h ファイルを開く関数です。
その逆もありです。
インデントが滅茶苦茶、もっと効率良くできる等
問題は多々あるかと思います。(--;

後、ディレクトリに ".h" ".cpp" ".c" が含まれると
多分動かないです。(未検証)
この辺りまだまだ修正の余地ありです。

では皆さん、色々とアドバイスありがとうございました。
-- 
つるりん tu93a@xxxxxxxxxxx

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; c/cpp → h ファイル開く / h → c/cpp ファイル開く       
   2003/11/10
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;; 拡張子を変更
(defun change-extension (fullpath ext-src ext-dst)
  (substitute-string fullpath ext-src ext-dst)
)
;;;;;;; バッファを読み込み、カレントバッファに設定
(defun show-buffer (fullpath)
  (if (dolist (x (mapcar (function get-buffer-file-name)
(buffer-list)))
		(if (string-equal x fullpath) (return t)))
	  (progn (switch-to-buffer (get-file-buffer fullpath)))
	  (progn (find-file fullpath)
             (switch-to-buffer (get-file-buffer
fullpath)))
  )
)
;;;;;;; c/cpp → h ファイル開く / h → c/cpp ファイル開
く
(defun open-c-cpp-h ()
 (interactive)
 (let (ext new-fname buff-fullpath)
  (setq buff-fullpath (get-buffer-file-name))
  (setq ext (pathname-type buff-fullpath))
  (cond
   ((string-equal ext "cpp")
    (setq new-fname (change-extension buff-fullpath "cpp"
"h"))
    (if (file-exist-p new-fname)
	    (show-buffer new-fname)
	    (message-box "そんな h ファイル無いです。")
   ))
   ((string-equal ext "c")
    (setq new-fname (change-extension buff-fullpath "c"
"h"))
    (if (file-exist-p new-fname)
	    (show-buffer new-fname)
	    (message-box "そんな h ファイル無いです。")
   ))
   ((string-equal ext "h")
    (setq new-fname (change-extension buff-fullpath "h"
"cpp"))
    (if (file-exist-p new-fname)
	    (show-buffer new-fname)
	    (progn
		  (setq new-fname (change-extension buff-fullpath "h"
"c"))
		  (if (file-exist-p new-fname)
			  (show-buffer new-fname)
		      (message-box "そんな c/cpp ファイル無いです。"))
	    )
   ))
   (t (message-box "c/cpp/h ファイル以外お断り。"))
  )
 )
)
(global-set-key #\C-F9 'open-c-cpp-h)

Index Home