🤖Otomasyon | VS Extension
Last updated
Last updated
© 2024 ~ Yunus Emre Ak ~ yEmreAk
💠 IDE objelerine erişmek için EnvDT80.DTE2
objesi kullanılır
🍎 await <asyncServiceProvider>.GetServiceAsync(typeof(DTE)).ConfigureAwait(false) as DTE2
kodu ile DTE objesi alınır
📂 dte2.ItemOperations
kodu ile dosya açma, ekleme ve benzeri işlemler IDE ile otomatikleştirilebilir
Kod | Açıklama |
---|---|
| IDE üzerinde aktif olan doküman |
| Aktif dokümanın proje objesi (kaynak kodlara vb erişim) |
| Solution Explorer üzerindeki seçilen dosyalara erişiriz |
| Command Window üzerinde komut çalıştırır |
| Projeye var olan dosyayı ekler ve yolun -proje dizininde olduğundan- günceller |
| IDE ile dosyayı açar, projeye dahil etmem, kaynak kod derlenmez (FileCodeModel olmaz) |
💡 Solution içerisinde yer alan ve derlenen proje dosyasını tutan objedir
🤖 Dosya üzerindeki otomasyon işlemleri bu obje ile yapılır
📂 Dosya işlemleri <projectItem>.Delete()
, <projectItem>.Save()
, <projectItem>.Remove()
gibi işlemler buradan yapılır
👨💻 Dosya içerisindeki kaynak kod modeline <projectItem>.FileCodeModel
şeklinde erişebiliriz
💡 IDE üzerinde derlenen (build) proje dosyaları (ProjectItem) kaynak kodlarını tutan modeldir
🍏 CodeElements
olan kod elemanlarını tutan objelerden oluşur
🍎 CodeNamespace
, CodeElement
, CodeClass
, CodeFunction
gibi kaynak kod özelliğine göre obje içerir
👨💻 <codeNamespace | codeClass >.Children
komutu ile namespace veya class içerisindeki kaynak kod objelerine erişilir
📢 Derlenmemiş dosyalarda - yani projeye dahil olmayan harici dosyalar olan
Miscellaneous
dosyalarında - FileCodeModel olmaz
🐥 CodeElement objelerinin metinlerine <codeElement>.GetStartPoint(vsCMPart.vsCMPartBody).CreateEditPoint()
şeklinde erişilir
📌 GetStartPoint(<vsCMPart>)
ile enum değerleri olarak tanımlanan alanların başlangıc konumu alınır
🔤 CreateEditPoint
ile konum bilgisinden içerik metnine erişilir
İçerik metni üzerinden GetText(<point>)
, ReplaceText(<point>)
gibi komutlar metni değiştirebiliriz
📝 Obje sonuna kadar almak veya değiştirmek için <codeElement>.EndPoint
değeri kullanılır