SORU
3 HAZİRAN 2009, ÇARŞAMBA


Nasıl bir dosya ise Emacs Lisp kullanan varsa kontrol edebilir miyim?

Emacs açıldı olduklarında salt okunur olarak oluşturulan dosyaları işaretlemek istiyorum. Atladığım bulmacanın parçası Bir dosya olmadığını kontrol etmek için nasıl "" varsa. Ben şu an için bu var:

;;
;; get file extension
;;
(defun get-ext (file-name)
  (car (cdr (split-string file-name "\\."))))

;; 
;; get the base name of the file
;;
(defun base-name (file-name)
  (car (split-string file-name "\\.")))

;;
;; if an 'lzz' file exists for this header, mark it as read only
;;
(defun mark-read-only ()
  (if (string= (get-ext (cur-file)) "h")
      (if ( ??file-exists??? (concat (base-name (cur-file)) ".lzz") )
          (toggle-read-only))))

Benim için ne kullanabilirim "???dosya var???"?

Bu, daha ekleyeyim "mark-salt okunur" için uygun kanca-file-hook bul bence. bulunca

Arka PLAN

C/C geliştirme süreci kolaylaştırmak için bir kod jeneratör lzz kullanıyoruz. Kısaca, lzz tek bir giriş dosyası görünüyor çok gibi C/C ) alır ve uygun olarak başlık ve kaynak dosyaları oluşturur.

Hata ayıklayıcı, orijinal kaynak ve derleme bağımlılıkları azaltmak için oluşturulan kaynak, Ancak, işaret, varsayılan, lzz tarafından içerir #line yönergeleri normalde başlık dosyaları içinde bu direktifler devre dışı bırakın. Sonuç şablonlar veya satır içi işlevleri hata ayıklama, hata ayıklayıcısını, normal olarak oluşturulan başlık ve özgün kaynak dosyası değil puan.

Bu büyük bir anlaşma değil, ancak son zamanlarda ayıklarken görüntülenen dosya için hızlı bir değişiklik yapacağım ben buldum ve sonra yeniden inşa edeceğim. Tabii ki bu yaptığım değişiklik ben düzenlenmiş bir dosya oluşturulur çünkü kaybolur ve değişiklikleri "" kütüphane yeniden inşa sırasında. üflenir böylece normalde demektir

ÇÖZÜM

Yardım ve yorumlar için herkese teşekkürler. Kullanmak için doğru işlevi işaret için cobbal özel bir teşekkür.

İşte (güncellemeler diğer açıklamalar buraya göre çok olan) çıkan kodu:

(defun cur-file ()
  "Return the filename (without directory) of the current buffer"
  (file-name-nondirectory (buffer-file-name (current-buffer)))
  )

(defun mark-generated-as-read-only ()
  "Mark generated source files as read only.
Mark generated files (lzz or gz) read only to avoid accidental updates."
  (if
      (or (string= (file-name-extension (cur-file)) "h")
          (string= (file-name-extension (cur-file)) "cpp"))
      (cond
       (
        (file-exists-p (concat (file-name-sans-extension (cur-file)) ".lzz"))
        (toggle-read-only))
       (
        (file-exists-p (concat (file-name-sans-extension (cur-file)) ".gz") )
        (toggle-read-only))
       )
    )
  )

CEVAP
3 HAZİRAN 2009, ÇARŞAMBA


file-exists-p deneyin

"Dosya dosya varsa (olup olmadığını ya da okuyabilirsiniz.) eğer iade t"

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • iBand IguJoo

    iBand IguJoo

    25 AĞUSTOS 2006
  • Peyton

    Peyton

    28 Aralık 2008
  • Techmoan

    Techmoan

    31 Mayıs 2009