🤖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
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 ( |
📁 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