Forum: Diğer Konular RSS
Geany IDE Kod Tamamlama
geany
Sayfa:  1  2  sonraki 
Avatar
Ronin #1
Üye Nis 2011 tarihinden beri · 39 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: Geany IDE Kod Tamamlama
Merhaba arkadaşlar. Öncelikle herkese geçmiş olsun. Terör, kriz, deprem hepsi üst üste geliyor.

Ubuntu 11.10 kullanıyorum, geany kurdum D için. D nin de en son sürümünü digital mars dan indirmiştim. Kod tamamlama işini yapamıyorum. Biliyorum esasında geany veya ubuntu forum/liste lerine yazmam gerekirdi. Aktif kullanan arkadaşlar olduğundan önce buraya sormayı uygun buldum.

Şirkette windows makinada geany gayet güzel çalışıyordu D için. Yeni ubuntu, yeni sürüm D sorun çıkardı. Önerilerinizi rica ediyorum. Konu hakkında fikri olan var mı?
Saygılar.

Edit: Tags dosyaları bu işi hallediyormuş fakat D için olanını bulamadım. Hayalleniyorum sanırım. İşyerinde acaba C mi kodladım diye düşünmeye başladım. Kolay gelsin.

Edit2: http://www.geany.org/manual/0.14/index.html#generating-a-g… sanırım yapmam gereken burada yazıyor :)

Edit3: Yapamadım. Biraz daha uğraşayım. Bu arada çözüm önerilerinizi bekliyorum. Saygılar.
Adaletli olmak zor iş.
Bu mesaj 2 defa değişti; son değiştiren: Ronin; zaman: 2011-10-23, 14:21.
zafer #2
Üye Tem 2009 tarihinden beri · 700 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Selamlar Ronin,

Sanırım D için ısınma turları atıyorsun :) Doğrusu buna çok sevindin deneyimli arkadaşlarla çok daha güzel projeler ortaya çıkarabiliriz.

Ubuntu 11.10 kullanıyorum, geany kurdum D için. D nin de en son sürümünü digital mars dan indirmiştim. Kod tamamlama işini yapamıyorum. Biliyorum esasında geany veya ubuntu forum/liste lerine yazmam gerekirdi. Aktif kullanan arkadaşlar olduğundan önce buraya sormayı uygun buldum.

Bence doğru olanı yapmışsın, D dili ile uğraşan birinin bu forumdaki çözüme ulaşması Ubuntu forumlarındaki genel programlama alanı altındaki çözümleri ayıklayıp ulaşmasından çok daha kolay ve hızlı olur. Ayrıca bazen birimizin çaktığı küçük bir kıvılcım diğerlerinin elinde bir yangına dönüşebiliyor. (Bu biraz Newton ve elma ilişkisi gibi)

Bende Geany kullanıyorum, hem Windows (Windows7) hemde Linux (Debian6) ortamında diğer bir çok aracı denedim ama en sonunda buna karar verdim. Kod tamamlama özelliği olduğunu okumuştum ama bende bu özelliği aktif hale getirememiştim. Zaten küçük programlar yazdığım ve D ile ilgilenmek istediğim için üzerinde çok uğraşmadan normal şekilde kullanıma devam ediyordum. Bu arda şu tag olayınada bakmış hatta nette biraz araştırma yapmış ama hiç bir şey anlamamış ve onunda peşini bırakmıştım. Ancak senin mesajın kafama düşen elma misali bir anda kod tamamlama, geany ve tags arasındaki bağlantıyı kurmamı sağladı. Bazen sizede olur mu bilmiyorum. Kafamfa bir anda herşey netleşmeye başladı. Neyse daha fazla uzatmadan konuya dönelim.

Bilgi sahibi olmadan fikir sahibi olamayacağımıza göre önce bilgi verelim. Anladıklarımı aktarıyorum. Geany kod tamamlama özelliği için adına tags (http://wiki.geany.org/tags/start) dediği bir sistem kullanıyor. Bu sistemde ilgili dilin kütüphane dosyalarında bulunan fonksiyon, yapı v.s tanımlar uzantısı tags olan bir dosya içerisine ekleniyor. Bu şekilde örneğin d.tags isimli bir dosya elde ediliyor. Anladığım kadarıyla bu dosyanın iki farklı formatı var. Detay burada : http://www.geany.org/manual/current/index.html#global-tags…

Böyle bir dosyayı elle oluşturmak tabi ki çok zahmetli ancak bu konuda Geany bize tagmanager isimli bir sistem ile yardımcı oluyor. Bu sistem temelde sizin gösterdiğiniz dosya içindeki bilgileri ayıklayıp bundan tags uzantılı bir dosya oluşturuyor. Dolayısıyla tamamlanacak kelimeler için gerekli tags dosyasını elde etmiş oluyorsunuz. Kullanımı:

C:\Geany\bin>geany -g D:\phobos.d.tags C:\dmd2\src\phobos\std\*.d

Bu satırı cmd üzerinde çalıştırdığımda d sürücüsünde phobos.d.tags isimli bir dosya oluştu. Bu dosya ile phobos içerisinde tanımlı bilgileri tags dosyası olarak elde etmiş oldum. Bundan sonrası nispeten kolaydı Geany >> Araçlar yolunda bulunan "Biçim Yükle" komutu ile Geanye tags dosyamı gösterdim ve kullanmaya başladım. Her ne kadar gelişmiş IDE araçları kadar güçlü olmasada iş görür bir tamamlama elde ettim.

Bundan sonraki adımda ise tags dosyasını her açılışta seçmek yerine sistemin tanıması için bazı ayarlar yapmak gerekiyordu. Bunun için tag dosyamızı Geanynin konfigürasyon klasörü içinde bulunan tags klasörüne kopyalamamız gerekiyor. Linuxdaki dağınık dosya yapısından dolayı Geany konfigürayon klasörünü her defasında uzunca bir süre arıyorum. Windowsda bu nispeten daha derli toplu genelde program files içindeki ilgili klasörde dosyaları bulmak mümkün ama bu sefer windowsda beni uğraştırdı. Bu arada uğraşmak istemeyenler için Geanynin küçük bir özelliğinden bahsetmek istiyorum. Üst (Çek) menüden Yardım >> Hata Mesajları bölümünü seçtiğinizde karşınıza bir ekran geliyor. Burada Geany ile ilgili bir çok bilgi mevcut örneğin şu bilgiye o ekrandan ulaştım.

12:15:49: Geany INFO : User config dir: C:\Users\Zafer\AppData\Roaming\geany

Bu küçük ama kullanışlı bilgiyide verdiktan sonra, yapılacak son şey phobos.d.tags dosyasını konfigürasyon klasörü içinde bulunan tags klasörüne kopyalıyoruz. Ardından yine "Biçim Yükle" diyerek konfigürasyon klasöründen tags dosyamızı yüklüyoruz. Geanyi kapatıp açıyor ve test ediyoruz Hepsi bu kadar.

Ben dosya içerisine phobos kütüphanesini ekledim ama başka kelimelerde eklenebilir. Ayrıca yine dilin kendi kelimleri while, foreach gibi kelimeleride dosyaya eklemek gerekiyor. Ronin ilgilenirsen dosyayı birlikte geliştirelim yada sen böyle eklemeler yaparsan bir kopyasınıda bana göndermeni rica ediyorum. Hatta Geany için güzel bir tags dosyası oluşturup geliştiricilere iletsek çok daha güzel olur. Ne dersin?

Bu dosyayı oluşturamadım, bunları anlamadım veya sadece dosyayı alıp yoluma devam etmek istiyorum diyenler için phobos için hazırladığım dosyayı şurdan indirebilirsiniz: http://www.zafercelenk.net/d_tags.zip
https://github.com/zafer06 - depo
Bu mesaj zafer tarafından değiştirildi; zaman: 2011-10-24, 03:28.
Avatar
Ronin #3
Üye Nis 2011 tarihinden beri · 39 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Çok teşekkür ederim Zafer hocam. Ben import klasörünü almayı denedim sürekli. Olaylara geniş bakmak konusunda bu yaşta olmama rağmen halen kendimi geliştiremedim. Bu da küçük bir öz eleştiri olsun. Teşekkürler.

Dosyayı beraber geliştirmek konusunda ne yapabiliriz ? Geany içindeki parser neye göre çalışıyor onu bilsek sanırım olur. Kaynak kodlarına bakmak lazım gelirse bakalım. İhtiyacımız var diye düşünüyorum.

Edit: Tags için birden fazla klasör ve ayrı ayrı dosya uzantısı gösterebilsek sanırım sorun büyük oranda çözülmüş olurdu. Komut satırından ona uğraştım biraz fakat bir sonuç elde edemedim. Akşam eve gittiğimde tekrar bakmayı düşünüyorum.

Edit2: En küçük fırsatta tekrar ne yapabileceğimi düşünüyorum. Bende çareyi her kütüphanenin dosyalarını ayrı ayrı işlemekte buldum. Daha düzgün birşey elde edebilirsem, ben de göndereyim. Yaptığım işlem C taglarının kullanımı gibi bir sonuca gitmediği için üzgünüm lakin yine de bayağı fonksiyon geldi şu an.

D diline ait rezerve edilmiş kelimeler yok dediğiniz gibi. Biraz daha araştırarak çözerim sanırım. Saygılar.
Adaletli olmak zor iş.
Bu mesaj 3 defa değişti; son değiştiren: Ronin; zaman: 2011-10-24, 06:49.
zafer #4
Üye Tem 2009 tarihinden beri · 700 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Ronin:
Çok teşekkür ederim Zafer hocam. Ben import klasörünü almayı denedim sürekli. Olaylara geniş bakmak konusunda bu yaşta olmama rağmen halen kendimi geliştiremedim. Bu da küçük bir öz eleştiri olsun. Teşekkürler.

Rica ederim Ronin, senin sayende bende kod tamamlama özelliğine kavuştum, aslında benim sana bir teşekkür borcum var sen olmasan tags konusunu çoktan unutmuştum. Öz eleştiri yapmak iyidir ama bence sen iyisin :)

Ronin:
Dosyayı beraber geliştirmek konusunda ne yapabiliriz ? Geany içindeki parser neye göre çalışıyor onu bilsek sanırım olur. Kaynak kodlarına bakmak lazım gelirse bakalım. İhtiyacımız var diye düşünüyorum.

Doğrusu azmine hayran kaldım. Açıkcası ben Geanynin kaynak kodları arasına girmeyi gözüme kestiremiyorum. Neticede ikimizde çalışıyoruz ve çok vakti olan insanlar değiliz sanırım. Ben biraz daha basit bir şey düşünmüştüm yavaş yavaş geliştireceğimiz ve zamanla eksiksiz hale gelecek D için hazırlanmış bir tag dosyası, daha detaylı bir işe girmek istemiyorum çünkü yürütemediğimiz projeler bizim hevesimizi kırar ve bunu istemeyiz sanırım?

Ronin:
Edit: Tags için birden fazla klasör ve ayrı ayrı dosya uzantısı gösterebilsek sanırım sorun büyük oranda çözülmüş olurdu. Komut satırından ona uğraştım biraz fakat bir sonuç elde edemedim. Akşam eve gittiğimde tekrar bakmayı düşünüyorum.

Edit2: En küçük fırsatta tekrar ne yapabileceğimi düşünüyorum. Bende çareyi her kütüphanenin dosyalarını ayrı ayrı işlemekte buldum. Daha düzgün birşey elde edebilirsem, ben de göndereyim. Yaptığım işlem C taglarının kullanımı gibi bir sonuca gitmediği için üzgünüm lakin yine de bayağı fonksiyon geldi şu an.

D diline ait rezerve edilmiş kelimeler yok dediğiniz gibi. Biraz daha araştırarak çözerim sanırım. Saygılar.

Uğraşlarından anladığım kadarıyla bu işi ciddiye alıyorsun. Eğer gerçekten D için eksiksiz bir tags dosyası hazırlama projesi için gereken azim, kararlılık ve zamana sahipsen birlikte bir yol haritası çıkarıp birlikte çalışalım. Sanırım Ali'de bu konuda bize destek verecektir. Benimde kafamda bazı fikirler var. Sende tamam diyorsan birlikte devam edelim yok ben dosyamı hazırladım bu işimi görür diyorsan bir kopyada bana gönderirsen mutlu olurum :)
https://github.com/zafer06 - depo
Avatar
Ronin #5
Üye Nis 2011 tarihinden beri · 39 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: Başarısız denemeler
Biraz uğraştım konu hakkında. Vakit buldukça bakıyorum. El yordamı ile bu dosyayı oluşturmak için artık geliştirici listesine mail atmayı düşünüyorum. Şöyle 3-4 saat boşluk bulsam yapacağım.
Adaletli olmak zor iş.
zafer #6
Üye Tem 2009 tarihinden beri · 700 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Ronin:
Konu adı: Başarısız denemeler

Kişisel gelişime takmış tiplerden değilim ama ne zaman yukarıda senin yazdığın gibi cümleler görsem aklıma hep şu söz gelir.

Edison başarısız denemeleri için şöyle diyordu: "Elektriğin nasıl üretilemeyeceğinin bir yolunu daha buldum".

Diğer taraftan bende bir itirafta bulunayım. :blush:  Yukarıdaki mesajımda her nekadar kaynak kodlara bulaşmak istemiyorum desemde senin azmin ve kararlılığın benide ateşledi sanırım, ve bir kaç gün sonra dayanamadım ve şuradaki https://github.com/geany/geany/tree/master/tagmanager tagmanager kaynak kodlarını incelemeye başladım. Amacım tagmanager'in tag kodlarını oluşturuken kullandığı algoritmayı anlamak ve bu algoritmayı temel alıp D dilinde benzer bir tag jenaratörü geliştirmekti ama maesef çözemeyince vazgeçtim. Belki tek başıma işin içinden çıkamadım bilmiyorum. Sen konuya mesaj yazmayınca seninde bıraktığını düşündüğüm için bende yaptıklarımla ilgili bir mesaj bırakmadım.

Eğer hala bu konu ile uğraşıyorsan sende benim gibi tek başına uğraşıp sonrada bıkıp bırakabilirsin :) İstersen birlikte düşünelim belki benim çözemediğim tagmanager algoritmasınıda çözeriz. Yada kodladığın bişeyler varsa nete koy birlite bakalım. Belki birlikte uğraşarak bir çözüm buluruz. Bence denemeye değer  ;-)
https://github.com/zafer06 - depo
Avatar
Ronin #7
Üye Nis 2011 tarihinden beri · 39 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yok hocam bırakmış değilim, çünkü kullanmayı amaçlıyorum. Sadece boş zaman işi olduğu için hareketlilik olmaması normal. Tag dosyalarını çıkardım fakat daha önceden de yazdığım gibi içerisinde tüm ifade ve kütüphaneler yok. Visual Studio ile hazırlanmış bir ide vardı ona bakmıştım en son. Onda düzgün çalışıyordu mesela.

Sanırım Geany IDE de kod tamamlama özelliği hızlı gelsin diye böyle bir yola başvurmuşlar. Normalde, diğer editörler, import/include edilen dosyanın fonksiyon ve değişkenlerini kendisi buluyor. Bu biraz uzun sürebiliyor tabi. Özellikle eclipse bu hız konusunda sabıkalı.

Dediğim gibi, işlerden ve ailemden arta kalan zamanda buna bakacağım. Aklımda bir yol haritası yok, eğer böyle bir planlama ortaya koyabilirsek, işbirliği yapabiliriz. Sizin göz attığınız şeylere ben bakmam, siz de aynı şekilde ve böylece fazladan iş gücü kaybı yaşamamış oluruz.

Keşke Türkiyede de bu tür faydası olabilecek işler için şirketler, çalışanlarına zaman sağlasalar. Ben ancak arada, sırada çeviri yapıyorum gizli, kaçak (:
Adaletli olmak zor iş.
zafer #8
Üye Tem 2009 tarihinden beri · 700 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Bu otomatik tamamlama (intelligence + sense  = intellisense) özelliğinin arka planda nasıl çalıştığını ve IDE'ler tarafından nasıl entegre edildiğini doğrusu bilmiyorum. Aslında bu konuda bilgimiz olsa belki yardımı olurdu. Neyse neticede bizim şimdi çözüm aradığımız konu D modüllerinin içinde bulunan metodları nasıl bir tag dosyası haline getirip Geany programına tanıtabileceğimiz. Hatta ilerleyen zamanda değişen D modül dosyalarını hızlı bir şekilde adapte edebilecek bir otomsyon tasarımını nasıl geliştirebiliriz konusu diye düşünüyorum.

Ronin:
Dediğim gibi, işlerden ve ailemden arta kalan zamanda buna bakacağım. Aklımda bir yol haritası yok, eğer böyle bir planlama ortaya koyabilirsek, işbirliği yapabiliriz. Sizin göz attığınız şeylere ben bakmam, siz de aynı şekilde ve böylece fazladan iş gücü kaybı yaşamamış oluruz.

Bizimde henüz bir yaşını doldurmuş küçük bir kızımız var dolayısıyla benimde fazla zamanım olmuyor. Yinede burada bulunmak, dışarıdaki herhangi birisi için önemsiz küçük bir projeyi beraber geliştirmek ve bu esnada yeni bir şeyler öğrenmenin tadını hiç bir yerde bulamıyorum. Bu sebeplerle sanırım bu projede tembel eğilimli bir proje olucak :) Ben bu tembelliği sevmeye başladım :)

Bu arada haklısın bir yol haritası yapalım. Ancak öncelikle tagmanagerin çalışma mantığını çözmemiz gerekiyor. Bunun için kodlardan ben bir yere varamadım. Sen baktın mı bilmiyorum? Acaba diyorum Geany geliştiricilerine bir e-posta gönderip tagmanager konusunda bilgi alabilir miyiz?
https://github.com/zafer06 - depo
zafer #9
Üye Tem 2009 tarihinden beri · 700 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Dünkü mesajımdan sonra tagmanager kodlarını daha dikkatli bir şekilde yeniden incelemeye karar verdim. Neticede şu metoda ulaştım.

Github deposundaki adresi : https://github.com/geany/geany/blob/master/tagmanager/tm_w…

gboolean tm_workspace_create_global_tags(const char *pre_process, const char **includes,
int includes_count, const char *tags_file, int lang)
{
#ifdef HAVE_GLOB_H
glob_t globbuf;
size_t idx_glob;
#endif
int idx_inc;
char *command;
guint i;
FILE *fp;
TMWorkObject *source_file;
GPtrArray *tags_array;
GHashTable *includes_files_hash;
GList *includes_files = NULL;
gchar *temp_file = create_temp_file("tmp_XXXXXX.cpp");
gchar *temp_file2 = create_temp_file("tmp_XXXXXX.cpp");
 
if (NULL == temp_file || NULL == temp_file2 ||
NULL == theWorkspace || NULL == (fp = g_fopen(temp_file, "w")))
{
g_free(temp_file);
g_free(temp_file2);
return FALSE;
}
 
includes_files_hash = g_hash_table_new_full (tm_file_inode_hash,
g_direct_equal,
NULL, g_free);
 
#ifdef HAVE_GLOB_H
globbuf.gl_offs = 0;
 
if (includes[0][0] == '"') /* leading \" char for glob matching */
for(idx_inc = 0; idx_inc < includes_count; idx_inc++)
{
  int dirty_len = strlen(includes[idx_inc]);
char *clean_path = g_malloc(dirty_len - 1);
 
strncpy(clean_path, includes[idx_inc] + 1, dirty_len - 1);
clean_path[dirty_len - 2] = 0;
 
#ifdef TM_DEBUG
g_message ("[o][%s]\n", clean_path);
#endif
glob(clean_path, 0, NULL, &globbuf);
 
#ifdef TM_DEBUG
g_message ("matches: %d\n", globbuf.gl_pathc);
#endif
 
for(idx_glob = 0; idx_glob < globbuf.gl_pathc; idx_glob++)
{
#ifdef TM_DEBUG
g_message (">>> %s\n", globbuf.gl_pathv[idx_glob]);
#endif
if (!g_hash_table_lookup(includes_files_hash,
globbuf.gl_pathv[idx_glob]))
{
char* file_name_copy = strdup(globbuf.gl_pathv[idx_glob]);
g_hash_table_insert(includes_files_hash, file_name_copy,
file_name_copy);
#ifdef TM_DEBUG
g_message ("Added ...\n");
#endif
}
}
globfree(&globbuf);
g_free(clean_path);
   }
   else
#endif
/* no glob support or globbing not wanted */
for(idx_inc = 0; idx_inc < includes_count; idx_inc++)
{
if (!g_hash_table_lookup(includes_files_hash,
includes[idx_inc]))
{
char* file_name_copy = strdup(includes[idx_inc]);
g_hash_table_insert(includes_files_hash, file_name_copy,
file_name_copy);
}
   }
 
/* Checks for duplicate file entries which would case trouble */
g_hash_table_foreach(includes_files_hash, tm_move_entries_to_g_list,
&includes_files);
 
includes_files = g_list_reverse (includes_files);
 
#ifdef TM_DEBUG
g_message ("writing out files to %s\n", temp_file);
#endif
if (pre_process != NULL)
write_includes_file(fp, includes_files);
else
append_to_temp_file(fp, includes_files);
 
g_list_free (includes_files);
g_hash_table_destroy(includes_files_hash);
includes_files_hash = NULL;
includes_files = NULL;
fclose(fp);
 
/* FIXME: The following grep command removes the lines
* G_BEGIN_DECLS and G_END_DECLS from the header files. The reason is
* that in tagmanager, the files are not correctly parsed and the typedefs
* following these lines are incorrectly parsed. The real fix should,
* of course be in tagmanager (c) parser. This is just a temporary fix.
*/
if (pre_process != NULL)
{
command = g_strdup_printf("%s %s | grep -v -E '^\\s*(G_BEGIN_DECLS|G_END_DECLS)\\s*$' > %s",
pre_process, temp_file, temp_file2);
#ifdef TM_DEBUG
g_message("Executing: %s", command);
#endif
system(command);
g_free(command);
g_unlink(temp_file);
g_free(temp_file);
}
else
{
/* no pre-processing needed, so temp_file2 = temp_file */
g_unlink(temp_file2);
g_free(temp_file2);
temp_file2 = temp_file;
temp_file = NULL;
}
source_file = tm_source_file_new(temp_file2, TRUE, tm_source_file_get_lang_name(lang));
if (NULL == source_file)
{
g_unlink(temp_file2);
return FALSE;
}
g_unlink(temp_file2);
g_free(temp_file2);
if ((NULL == source_file->tags_array) || (0 == source_file->tags_array->len))
{
tm_source_file_free(source_file);
return FALSE;
}
tags_array = tm_tags_extract(source_file->tags_array, tm_tag_max_t);
if ((NULL == tags_array) || (0 == tags_array->len))
{
if (tags_array)
g_ptr_array_free(tags_array, TRUE);
tm_source_file_free(source_file);
return FALSE;
}
if (FALSE == tm_tags_sort(tags_array, global_tags_sort_attrs, TRUE))
{
tm_source_file_free(source_file);
return FALSE;
}
if (NULL == (fp = g_fopen(tags_file, "w")))
{
tm_source_file_free(source_file);
return FALSE;
}
fprintf(fp, "# format=tagmanager\n");
for (i = 0; i < tags_array->len; ++i)
{
tm_tag_write(TM_TAG(tags_array->pdata[i]), fp, tm_tag_attr_type_t
| tm_tag_attr_scope_t | tm_tag_attr_arglist_t | tm_tag_attr_vartype_t
| tm_tag_attr_pointer_t);
}
fclose(fp);
tm_source_file_free(source_file);
g_ptr_array_free(tags_array, TRUE);
return TRUE;
}

C++ bilgim çok fazla değil ama yanılmıyorsam Geany bu metodu kullanarak bizim gösterdiğimiz adresteki dosyaların içindeki metodları ayıklayıp bunları bir tag dosyası haline getiriyor. Sende bir ara incelersen memnun olurum eğer aradığımız metod buysa sorunumuzun büyük bir kısmını çözdük demektir :) Sonrasında yapmamız gereken bu metodu anlayıp D ile kodlamak olacak ki sanırım bu işin en keyifli kısmı bu aşamada başlayacak :)
https://github.com/zafer06 - depo
Avatar
Ronin #10
Üye Nis 2011 tarihinden beri · 39 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Bayram, seyran, projeler, yeni yıl, hastalık derken uğrayamaz oldum. Boş vaktimde bu işe bakacağım inşallah.
Adaletli olmak zor iş.
zafer #11
Üye Tem 2009 tarihinden beri · 700 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Ben kullanabileceğim zamanın büyük kısmını KelimeMatik projesi için tükettiğimden dolayı bu konu ile yeterince ilgilenemiyorum. Sen uygun zamanında bir incele bakalım neler çıkaracaksın.
https://github.com/zafer06 - depo
Avatar
Salih Dinçer #12
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Belki işinize yarar:

[-COMMENT-:GLOBAL]
# D LANGUAGE (DigitalMars.com) KEYWORDS FILE FOR CRIMSON EDITOR
# FIRST EDITED BY Srecko Howard 30/01/04
# Edited by TechnoZeus 07,May,2005

[KEYWORDS0:GLOBAL]
#Flow
asm
break
case
catch
continue
default
do
else
finally
for
foreach
goto
if
return
switch
synchronized
throw
try
volatile
while
with

[KEYWORDS1:GLOBAL]
#Primary
assert
false
import
module
null
super
this
true
typeid
unittest

[KEYWORDS2:GLOBAL]
#Attrib
body
deprecated
export
extern
instance
lib
msg
package
pragma
private
protected
public

[KEYWORDS3:GLOBAL]
#Storage
abstract
auto
const
final
in
inout
out
override
static
align
even
naked
offset
seg
ptr

[KEYWORDS4:GLOBAL]
#Basics
bit
byte
cdouble
cent
cfloat
char
creal
dchar
double
float
idouble
ifloat
int
ireal
long
ptrdiff_t
real
short
size_t
ubyte
ucent
uint
ulong
ushort
void
wchar

[KEYWORDS5:GLOBAL]
#User
alias
class
delegate
enum
function
interface
invariant
mixin
struct
template
typedef
typeof
union

[KEYWORDS6:GLOBAL]
#Properties
alignof
dig
dup
epsilon
infinity
init
keys
length
mant_dig
max
max_10_exp
max_exp
min
min_10_exp
min_exp
nan
offsetof
rehash
reverse
sizeof
sort
values
_argptr
_arguments

[KEYWORDS7:GLOBAL]
#Operators
call
cast
delete
is
new
opAdd
opAddAssign
opAdd_r
opAnd
opAndAssign
opAnd_r
opApply
opCall
opCast
opCat
opCatAssign
opCat_r
opCmp
opCmp
opCom
opDiv
opDivAssign
opDiv_r
opEquals
opIndex
opIndexAssign
opMod
opModAssign
opMod_r
opMul
opMulAssign
opMul_r
opNeg
opOr
opOrAssign
opOr_r
opPos
opPostDec
opPostInc
opShl
opShlAssign
opShl_r
opShr
opShrAssign
opShr_r
opSlice
opSub
opSubAssign
opSub_r
opUShr
opUShrAssign
opUShr_r
opXor
opXorAssign
opXor_r
toHash
type
var

[KEYWORDS8:GLOBAL]
#Version
all
BigEndian
debug
DigitalMars
D_InlineAsm
linux
LittleEndian
none
version
Win32
Win64
Windows
X86
X86_64

[KEYWORDS9:GLOBAL]
#Registers
AH
AL
AX
BH
BL
BP
BX
CH
CL
CR0
CR2
CR3
CR4
CS
CX
DH
DI
DL
DR0
DR1
DR2
DR3
DR6
DR7
DS
DX
EAX
EBP
EBX
ECX
EDI
EDX
ES
ESI
ESP
FS
GS
MM0
MM1
MM2
MM3
MM4
MM5
MM6
MM7
SI
SP
SS
ST
TR3
TR4
TR5
TR6
TR7
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
zafer #13
Üye Tem 2009 tarihinden beri · 700 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Salih emeğin için teşekkürler. Geany ile daha önce çalışmıştım ama özellikle D için bana pek kullanışlı gelmedi bende daha sonra CodeBlocks ile çalışmaya başladım.

Başka bir konuda da belirttiğim gibi CodeBlocks'un Makefile kullanımı ve derleme komutlarını izleyebilme özelliğinden dolayı şimdi ki tercihim bu yönde.
https://github.com/zafer06 - depo
acehreli (Moderatör) #14
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Salih'in sonradan farkettiği gibi bu liste D1 ile ilgili. En son 2005'te dokunulmuş. :)

Ali
Avatar
huseyin #15
Üye Haz 2012 tarihinden beri · 363 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Geany ide de kod tamamlama işini bende arastırdım ve içinde gelen bir html belgesinde bulmus oldum
Hemen anlatayım
geany -g <kodları eklenecek dosya> (<> isaretleri yok tabiki :) )sekilde parametre gonderir isek bize .tags formatında bir dosya veriyor kendi klasorunde bunu ben data klasorune koydum ve geany ı actım Araçlar>>Biçim Yükle den biçimi yani tags dosyasını yukledım suanda kod tamamlıyor
Huseyin
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Sayfa:  1  2  sonraki 
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-19, 05:56:54 (UTC -08:00)