Skip to content
| Marketplace
Sign in
Visual Studio Code>SCM Providers>ANDNew to Visual Studio Code? Get it now.
AND

AND

Lucian95511

| (0) | Free
AND ekosistemiyle tam uyumlu VS Code entegrasyonu: DeltaX sürüm kontrolü (gruplar, projeler, commit/dal/birleştirme) ve AND açıkken canlı Forum/DM/Sohbet/Ağ paneli.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

AND for VS Code

AND ekosistemiyle tam uyumlu bir VS Code uzantısı. İki bağımsız katmandan oluşur:

  1. DeltaX sürüm kontrolü — Eklentiler/DeltaX (Go) ile aynı disk üzerindeki veri formatını (AND_DATA_DIR/DeltaX/…) okuyup yazar; AND kapalıyken de çalışır (yerel dosya tabanlı).
  2. Canlı AND paneli (Forum/DM/Sohbet/Ağ) — AND açıkken, internal/pluginapi'nin yerel API'sine bağlanır; bkz. Canlı Panel bölümü.

Bu uzantı AND TUI ile aynı anda, birbirini bozmadan kullanılabilir: DeltaX katmanı ikisi de aynı içerik-adresli nesne deposunu (nesneler/), aynı meta.json/MERGE_HEAD dosyalarını okur/yazar; canlı panel ise AND'ın zaten çalışan sürecine ayrı bir bağlantı üzerinden konuşur.

DeltaX — Neler yapılabilir

Özellik Nasıl
Gruplar/Projeler listesi Etkinlik çubuğundaki DeltaX simgesi
Bir projeyi çalışma alanı olarak açma Proje ağacında proje adına tıkla / "Projeyi Aç"
Yeni proje oluşturma (yerel) Grup üstünde sağ tık → "Yeni Proje"
Durum (Eklenen/Değişen/Silinen) Kaynak Denetimi paneli, otomatik yenilenir
Diff Bir değişikliğe tıkla → VS Code'un yerleşik diff editörü (HEAD ↔ çalışma dosyası)
Kaydet (Commit) Kaynak Denetimi giriş kutusuna mesaj yaz, Ctrl+Enter
Günlük (Log) Komut Paleti → "DeltaX: Günlük" — arama + commit başına değişen dosyalar, tıklayınca diff
Dal değiştir / yeni dal Komut Paleti → "DeltaX: Dal Değiştir" / "DeltaX: Yeni Dal Oluştur"
Uzak dalı birleştir Komut Paleti → "DeltaX: Uzak Dalı Birleştir" (proje.uzaklar'daki, TUI ile daha önce Gönder/Çek edilmiş uçlar)
Dışa aktar (.zip) Proje sağ tık → "Projeyi Dışa Aktar (.zip)"
.projeagignore düzenle Komut Paleti → "DeltaX: .projeagignore Dosyasını Aç/Oluştur"

DeltaX kapsam dışı (bilinçli olarak)

Grup oluşturma/davet/yönetici atama ve DeltaX'e özgü Gönder (push) / Çek (pull) bu katmanda YOKTUR — bunlar AND'ın canlı libp2p P2P bağlantısını gerektirir (bkz. Eklentiler/DeltaX/sync.go). Bu işlemler için AND TUI'sindeki DeltaX eklentisini kullanın; TUI ile senkronize ettiğiniz her şey (nesneler, proje.uzaklar uçları) bu uzantı tarafından da görülür ve yerel olarak birleştirilebilir. Genel forum/DM/sohbet ise artık aşağıdaki Canlı Panel üzerinden VS Code'dan da kullanılabilir.


Canlı Panel (Forum / DM / Sohbet / Ağ)

AND açıkken (ve aşağıdaki tek seferlik kurulum yapıldıysa) Komut Paleti → "AND: Canlı Panel" ile: kimlik/rol bilgisi, bağlı eşler, genel sohbet, doğrudan mesaj (DM), forumda yeni konu açma, bir konuyu ID ile görüntüleyip yanıtlama ve — kurucu/moderatörseniz — bekleyen gönderileri onaylama/reddetme/silme ve yazar güvenilirlik listesine ekleme.

Durum çubuğunda sol altta "AND: bağlı" / "AND: bağlı değil" göstergesi vardır; tıklayınca paneli açar.

Nasıl bağlanır — mimari

AND'ın eklenti API'si (internal/pluginapi) normalde yalnızca AND'ın kendisinin başlattığı eklenti alt süreçlerine (AND_API_ADDR/AND_API_TOKEN ortam değişkenleriyle) açılır — bağımsız başlatılmış bir VS Code uzantısı bu değişkenleri asla göremez. Bunu çözmek için AND'ın Go kaynağına küçük, opt-in bir ekleme yapıldı: AND_ENABLE_EXTERNAL_API=1 ortam değişkeniyle açıldığında AND, mevcut token'lı TCP dinleyicisinin YANINA (onu değiştirmeden) ikinci bir dinleyici açar:

  • Windows: sabit, türetilmiş adlı bir named pipe (\\.\pipe\and-plugin-api-<hash>), security descriptor'ı yalnızca pipe'ın sahibine (owner) erişim izni verecek şekilde ayarlanmış (D:P(A;;GA;;;OW)) — aynı makinedeki başka bir kullanıcı, hatta Administrators grubu bile erişemez.
  • Linux/macOS: AND_DATA_DIR/api.sock yolunda, 0600 izinli bir Unix domain socket.

Bu ikinci dinleyicide bearer token yoktur — erişim kararını bir sırla değil doğrudan işletim sistemi verir, bu yüzden pipe/socket adının kendisi gizli olmak zorunda değildir (adı bilmek yalnızca bağlanmayı DENEMEYE izin verir; gerçek erişim OS tarafından kısıtlanır). Uzantı bu adı, AND'ın kullandığı AND_DATA_DIR yoluyla birebir aynı formülle (bkz. src/live/liveAddr.ts ↔ internal/pluginapi/externalpipe_*.go) kendisi hesaplar; ayrıca bir keşif dosyasına gerek yoktur.

Kurulum (tek seferlik)

AND'ı başlatmadan önce ortam değişkenini ayarlayın:

# PowerShell
$env:AND_ENABLE_EXTERNAL_API = "1"
.\and.exe
# bash
AND_ENABLE_EXTERNAL_API=1 ./and

Bu değişken ayarlanmadıysa AND, mevcut davranışını (yalnızca kendi başlattığı eklentilere token'lı erişim) hiçbir şekilde değiştirmez — ikinci dinleyici hiç açılmaz.

Kapsam ve sınırlamalar

  • Forum'da tüm gönderileri gözatma (getAllPosts/getPending) yalnızca kurucu/moderatör rolüyle çalışır — bu, AND'ın API'sinin kendi tasarımıdır (bkz. enforceModeratorRole), uzantı tarafından eklenen bir kısıtlama değildir. Normal bir üye olarak yeni konu açabilir, bilinen bir konu ID'sine yanıt yazabilir ve ID'sini bildiğiniz bir konuyu görüntüleyebilirsiniz.
  • DM ve genel sohbet, sunucu tarafında en fazla 5 saniye bekleyen bir long-poll ile alınır; panel açıkken sürekli arka planda döner, kapatılınca durur.
  • Bu katman AND kapalıyken hiçbir şey yapmaz — DeltaX'in yerel dosya tabanlı özellikleri bundan etkilenmez.

⚠️ Dal değiştirme / birleştirme çalışma klasörünü tamamen siler

DeltaX'in TUI'siyle birebir aynı davranış: bir dala geçerken (dalaGec), çalışma klasöründeki her şey — .projeagignore ile hariç tutulan ya da hiç izlenmeyen dosyalar dahil — önce silinir, sonra hedef dalın kayıtlı içeriği yeniden yazılır. Uzantı bunu yapmadan önce (a) çalışma dizininin temiz olduğunu zorunlu kılar ve (b) açık bir onay penceresi gösterir; yine de önemli yerel-olmayan dosyaları çalışma klasörünün dışında tutun.

Kurulum / Geliştirme

Canlı panel için AND tarafında go build ./... ile yeniden derleme gerekir (yalnızca internal/pluginapi içine github.com/Microsoft/go-winio bağımlılığı eklendi — go.mod/go.sum zaten güncellendi, ek bir adım gerekmez). Bu değişiklik go build ./..., go vet ./... ve go test ./... ile bu ortamda doğrulandı.

VS Code uzantısı tarafı için: bu ortamda Node.js kurulu değildi, bu yüzden aşağıdaki adımlar doğrulanamadı — çalıştırmadan önce bağımlılıkları siz kurmalısınız:

cd and-vscode
npm install
npm run build        # dist/extension.js üretir (esbuild)

VS Code'da bu klasörü açıp F5 ile bir Extension Development Host penceresi başlatabilir, ya da paketleyip kurabilirsiniz:

npm run package       # and-vscode-0.2.4.vsix üretir (@vscode/vsce)
code --install-extension and-vscode-0.2.4.vsix

Geliştirme sırasında canlı yeniden derleme için npm run watch.

Ayarlar

Ayar Açıklama
deltax.dataDir AND_DATA_DIR üzerine yaz. Boşsa AND'ın kendi varsayılanı (os.UserConfigDir()/and) otomatik hesaplanır. Canlı panelin pipe/socket adını hesaplarken de aynı değer kullanılır — AND gerçekte farklı bir AND_DATA_DIR ile başlatıldıysa burada da aynısını belirtin.
deltax.authorName DeltaX commit'lerinde yazar adı. Boşsa işletim sistemi kullanıcı adı kullanılır. AND'daki takma addan bağımsızdır.

Mimari — Go karşılıkları

Bu uzantının veri katmanı, Eklentiler/DeltaX (Go) içindeki dosyaların TypeScript'e birebir taşınmasıdır; hash algoritmaları ve JSON alan adları bilerek aynı tutulmuştur ki iki taraf da aynı nesneler/, meta.json, MERGE_HEAD dosyalarını sorunsuz okuyup yazabilsin.

TypeScript Go karşılığı Ne yapar
src/objectStore.ts vcs.go (nesne deposu) İçerik-adresli blob/ağaç/commit okuma-yazma
src/treeStore.ts vcs.go (ağaç/durum/checkout) Ağaç oluşturma, durum hesaplama, dal geçişi
src/commitStore.ts vcs.go (commit/günlük/ortak ata) Commit okuma/yazma, günlük, ortak ata
src/mergeEngine.ts vcs.go (üçlü birleştirme) Üç yönlü birleştirme + çakışma işaretleri
src/ignoreRules.ts ignore.go .projeagignore desen eşleştirme
src/groupProjectStore.ts store.go Grup/proje meta verisi, MERGE_HEAD
src/exportZip.ts export.go Projeyi .zip olarak dışa aktarma
src/dataDir.ts cmd/and/main.go (appDir) AND_DATA_DIR varsayılan konum tespiti

Canlı panel katmanı (src/live/) yukarıdaki DeltaX veri katmanından tamamen ayrıdır ve AND'ın çalışan sürecine bağlanır:

TypeScript Go karşılığı Ne yapar
src/live/liveAddr.ts internal/pluginapi/externalpipe_windows.go / externalpipe_unix.go Pipe adı / socket yolu türetme (birebir aynı formül)
src/live/liveClient.ts internal/pluginapi/api.go (Client) Named pipe/Unix socket üzerinden HTTP istekleri (token yok)
src/live/liveConnection.ts — Bağlantı durumu, periyodik yeniden deneme
src/live/livePanel.ts — Kimlik/Rol/Ağ/Sohbet/DM/Forum webview paneli
src/live/liveTypes.ts internal/pluginapi/api.go (struct'lar) JSON tip tanımları

Not: Ağaç/commit nesnelerini yazarken JSON serileştirmesinin Go'nunkiyle bayt bayt aynı olması gerekmez — her nesnenin hash'i kendi yazdığı baytlardan türetildiği için bu iki taraf arasında "aynı içerik = aynı hash" garantisi zaten sağlanır (kısmi çiftleşme dışında bir tutarsızlık oluşmaz). Blob hash'i ise (sha256('B' + ham bayt)) iki tarafta da bit bit aynı formülle hesaplanır — durum karşılaştırmalarının doğruluğu buna dayanır.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft