🤖IDE Objelerine Erişme | VSIX
Visual Studio 2019 eklentisi ile IDE objelerine erişme otomasyonu
Last updated
Visual Studio 2019 eklentisi ile IDE objelerine erişme otomasyonu
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 |
---|---|
ProjectItem
💡 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
FileCodeModel
💡 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
🐥 CodeElement
objelerinin metinlerine <codeElement>.GetStartPoint(vsCMPart.vsCMPartBody).CreateEditPoint()
şeklinde erişilir
📌 GetStartPoint(<vsCMPart>)
ile enum
değerleri olarak tanımlanan alanların başlangıç 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
dte2.ActiveDocument
IDE üzerinde aktif olan doküman
dte2.ActiveDocument.ProjectItem
Aktif dokümanın proje objesi (kaynak kodlara vb. erişim)
dte2.ToolWindows.SolutionExplorer.SelectedItems
Solution Explorer üzerindeki seçilen dosyalara erişiriz
dte2.ExecuteCommand("<komut>", "<argümanlar>")
Command Window üzerinde komut çalıştırır
dte2.ItemOperations.AddExistingItem(<filepath>)
Projeye var olan dosyayı ekler ve yolun -proje dizininde olduğundan- günceller
dte2.ItemOperations.OpenFile(<filepath>)
IDE ile dosyayı açar, projeye dahil etmem, kaynak kod derlenmez (FileCodeModel
olmaz)