🤖IDE Objelerine Erişme | VSIX
Visual Studio 2019 eklentisi ile IDE objelerine erişme otomasyonu
🌇 Ortam Objelerine Erişme
💠 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
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)
📁 ProjectItem
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
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
🐥
CodeElement
objelerinin metinlerine<codeElement>.GetStartPoint(vsCMPart.vsCMPartBody).CreateEditPoint()
şeklinde erişilir📌
GetStartPoint(<vsCMPart>)
ileenum
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
Last updated
Was this helpful?