Temeller - LuaLS
LuaLS Nedir?
lua-language-server, yorum ek açıklamaları (comment annotations) kullanarak tür denetimine (type checking) olanak tanır. Bu, Dil Sunucusu Protokolünü (Language Server Protocol) destekleyen çoğu düzenleyicide kullanılabilir, ancak bu mini rehberde Visual Studio Code için nasıl kurulacağı gösterilmektedir. Diğer rehberlere buradan ulaşabilirsiniz.
Tür denetimi, tür uyuşmazlıkları nedeniyle oluşabilecek hataları meydana gelmeden önce bulmak için çok yararlı olabilir ve genellikle erken hata tespiti sağlar. Daha önce hiç expected ? got nil hatasıyla karşılaştınız mı? O zaman bu tam size göre!
Kurulum
Lua(sumneko tarafından) eklentisini Visual Studio Marketplace'ten yükleyin.- luttje/glua-api-snippets'i, README dosyasındaki rehberi takip ederek kurun.
Yapılandırma / Kullanıcı Ayarları
Her şey yüklendikten sonra, VS Code'da bir metin dosyası açın ve sağ alt köşeden dil modunu Lua olarak değiştirin. Alternatif olarak ctrl + k m klavye kısayolunu kullanın.
Ardından, ctrl + ⇧ shift + p ile komut paletini açın. Open User Settings (JSON) aratın ve enter'a basın. Bu, Lua ayarlarını eklemek için ayarlarınızı bir JSON dosyası olarak açacaktır. Sonrasında bu varsayılan ayarları eklemelisiniz.
Her zaman türlerini yüklemek istediğiniz bir oyun modunuz (gamemode) / eklenti setiniz varsa, bunları Lua.workspace.libary'ye ekleyebilirsiniz. Bu, tür tanımlarını yeniden tanımlamaya / `require` etmeye gerek kalmadan diğer eklentilerde kullanabileceğiniz anlamına gelir.
Temel Kullanım Örnekleri
İşte LuaLS'in farklı kullanım alanlarını gösteren bazı kısa örnekler.
Tür Denetimi
Burada, bir fonksiyonun iki farklı türde anahtar-değer tablosu döndürdüğü bir örneğimiz var. Daha sonra tablo üzerinde döngü kurup bu değerleri başka bir fonksiyona iletiyoruz. Fark etmiş olabilirsiniz veya olmayabilirsiniz, PrintHealth için anahtar ve değer argümanlarının yerleri değiştirilmiştir. Tablo ve fonksiyon argümanları için türleri belirttiğimizden, LuaLS bizi tür uyuşmazlıkları konusunda uyarıyor! Elbette bu örnek biraz bariz, ancak fonksiyon dönüşlerinin başka bir dosyadan geldiği durumlarda bu hayat kurtarıcı olabilir.

Otomatik Tamamlama
Burada Player üzerinde, bir Varlık (Entity) tablosu döndüren yeni bir GetOwnedEntities fonksiyonu tanımlıyoruz. (Entity[], table<integer, Entity>'e eşdeğerdir; burada türün sıralı bir tablosudur). Bu yeni fonksiyon üzerindeki tür belgeleri sayesinde, döndürülen tablo üzerinde döngü kurduğumuzda Entity içindeki tüm fonksiyonların tam bir otomatik tamamlamasını görebiliriz.

Jenerik (Generic)
Jenerikler (Generics), kodun yeniden kullanılmasına izin verir ve bir tür için bir nevi "yer tutucu" görevi görürler. Bir türün "yakalanmasına" ve yeniden kullanılmasına olanak tanırlar; bu örnekte sadece değeri, türüyle birlikte neyse onu geri döndürüyoruz.

Sorun Giderme
Bazen Lua Eklenti Yöneticisi (Lua Addon Manager), Gmod Snippets'i yükleyemeyebilir. Bu olursa, bunun yerine:
- luttje/glua-api-snippets/releases adresinden en son
*.lua.zipdosyasını indirin. - Sıkıştırılmış dosyadan çıkarılan dizin yolunu VS Kullanıcı Ayarlarınızdaki
Lua.workspace.libary'ye ekleyin.
Bağlantılar
Tüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord