2013-10-16 16 views
5

Bazen bir program yazarken, yorumlarda başka bir parçaya/veya işleve başvurmanız gerekir. Örneğin, aşağıdaki kodda, yorumlarda iki ankraj "workaround1" ve "workaround2" (başka bir dosyada) ayarlayabilir ve ilgili yorumlar için referanslarla ABC işlevi hakkında bir not hazırlayabilirdim.Kaynak kodundaki referanslarda çapraz referanslar

// this part does <<workaround1>> 
a = 1; 
a++; 
... 

// [[workaround1]] and [[file:c.java::workaround2][2]] can be removed once ABC is fixed 
c = ABC(); 

iki soru var:

  1. böyle referanslar için en iyi yöntem var mı? Profesyonel programcılar bununla nasıl baş ederler?
  2. Kaynak kodları aracılığıyla bu tür notlarla gezinmeyi kolaylaştıracak bir emacs paketi var mı? Org modunun uzantısını düşünerek (tercihen herhangi bir) dil modunu çalıştırabilirim.

Ben Redmine benzer soru hakkında farkındayım: Can I create a cross-project source reference in redmine?

cevap

3

kullanılabilen farklı yaklaşımlar Hiç şüphe yoktur. Birisi muhtemelen bunun için en yaygın yaklaşım olan org-mode'u nasıl kullanacağını açıklayacaktır. Şahsen ben linkd.el'u kullanıyorum - basit. here'u alabilirsiniz.

Bunu Emacs-Lisp dosyalarında kullanıyorum, ancak herhangi bir metin dosyasında kullanabilirsiniz.

Bir başlık veya adlandırılmış hedef bu kadar düz metin gibi görünür: ; bir yorum başlar Lisp için kullanıldığını

 
     ;; (@* "Common helper functions") 

. Senin durumunda, ben // kullanırım, inanıyorum.

 
     ;; (@> "Common helper functions") 

farklı bir dosyadan kendisine bir bağlantı şuna benzer:

Aynı dosyadan kendisine bir bağlantı şuna benzer onlar vurgulayarak render kullanan

 
     ;; (@file :file-name "foo.el" :to "Common helper functions") 

Ama ve yabancı olmayan karakterler olmadan.

Hedef böyle görünüyor (ama vurgulanmış):

 
     * Common helper functions 

bir aynı dosya bağlantısı (mouseover vurgulama ancak bir Emacs bağlantı olarak vurgulanmış ve) aşağıdaki gibidir:

 
     > Common helper functions 

Farklı bir dosya bağlantısı bu gibi görünüyor (ancak fare ile bir bağlantı olarak vurgulanır):

 
     . foo.el : Common helper functions 
+0

yeniden destekliyor mu? diğer dosyalara feribot? Paket içi açıklamasından net değil. – zeliboba

+0

Evet ve yukarıdakilere bir örnek verdim: '(@file: dosya-adı" foo.el ":" Ortak yardımcı işlevler "). – Drew

+0

Ayrıca bkz. [LinkdMode] (http://www.emacswiki.org/emacs/LinkdMode) ve diğer bazı seçenekler için [CategoryNavigation] (http://www.emacswiki.org/emacs/CategoryNavigation). Ana alternatif, WikiNav gibi [düğme kilidi] ile dağıtılmış gibi görünüyor (https://github.com/rolandwalker/button-lock) – phils