# Konsol Komutu Otomatik Tamamlama

- **İngilizce aslı:** https://wiki.facepunch.com/gmod/Console_Command_Auto-completion
- **Çeviri tarihi:** 2025-09-08

## Otomatik Tamamlama

Otomatik tamamlama, kullanıcıların konsollarına yazdığı komutlar için olası devamları önerir.

Bu mekanik yalnızca komut kullanımını basitleştirmekle kalmaz,
aynı zamanda kullanıcılara bunları nasıl kullanabileceklerini de öğretir.

### Tamamlama Fonksiyonu

[`concommand.Add`](https://gmod.tr/wiki/concommand.Add) ile kaydedilen komutlara
bir otomatik tamamlama fonksiyonu atanabilir.

```lua
concommand.Add('my-command',onCommand,onAutoComplete)
```

Bu fonksiyon, önerilerden oluşan bir dizi (array) döndürebilir.

```lua
local function onAutoComplete ()
	return {
		'my-command OptionA' ,
        'my-command OptionB'
    }
end
```

Öneriler, girdinin altında görüntülenecektir.

![MyCommand OptionA&B](https://gmod.tr/api/uploads/wiki/55866b1948adf8a40c1d.png)

#### Parametreler

Tamamlama fonksiyonu ayrıca, daha bağlama duyarlı öneriler döndürmenize
olanak tanıyan 2 parametre alır.

```lua
function onAutoComplete ( command , parameters )
```

`command` : [String](https://gmod.tr/wiki/string)

Otomatik tamamlama fonksiyonunu çağıran komutun adı.

`parameters` : [String](https://gmod.tr/wiki/string)

Komutun kendisinden sonra yazılan her şey.

> **NOT:** Komut adları büyük/küçük harfe duyarlı olmadığından, `command` parametresi herhangi bir
> yazım şekline sahip olabilir (`mY-CoMMaND`) ve arama tablolarıyla kullanıldığında normalleştirilmelidir.

> **NOT:** Otomatik tamamlama fonksiyonu yalnızca komut adından sonra en az 1 karakter yazıldığında çağrılır,
> bu nedenle `parameters` her zaman bir boşluk karakteriyle başlar.

##### Girdi Örnekleri

![Input Basic](https://gmod.tr/api/uploads/wiki/f156779978b294ffa87a.png)

```lua
command    : `my-command`
parameters : ` `
```

![Input Extended](https://gmod.tr/api/uploads/wiki/69e98911fbecc72a1abd.png)

```lua
command : `my-command`
parameters : ` is useful`
```

##### Kullanım Durumları

`command` parametresi, komutların adını değiştirmek için kullanılabilir.

```lua
local function onAutoComplete ( command )
	return {
		command .. ' ' .. 'option'
	}
end
```

`parameters` dizesi işlenebilir ve iç içe öneriler için kullanılabilir.

```lua
local function onAutoComplete ( command , parameters )

    -- Dizeyi normalleştirir
    parameters = parameters:Trim():lower()

    -- Dizeyi bir diziye böler
	parameters = string.Explode('%s+',parameters,true)

    if parameters[ 1 ] == 'is' then
        return { command .. ' is useful' }
    end

    if parameters[ 1 ] == 'was' then
        return { command .. ' was broken' }
    end

	return {
        command .. ' ' .. 'was' ,
        command .. ' ' .. 'is'
    }
end
```

Yalnızca komutun yazılması, iki olası alt komut önerir.

![Parameters None](https://gmod.tr/api/uploads/wiki/7cc8957e91d9f9ca4294.png)

`was` alt komutunun eklenmesi, yalnızca ona özgü seçenekleri görüntüler.

![Parameters Was](https://gmod.tr/api/uploads/wiki/9336d2e64f0c390ac395.png)

`is` alt komutunun eklenmesi, yalnızca ona özgü seçenekleri görüntüler.

![Parameters Is](https://gmod.tr/api/uploads/wiki/0e359dcd54ba7e11e778.png)

### Örnekler

#### Bot İsim Listesi

Mevcut girdiye göre bot oyuncu adlarını önerir.

```lua
-- Mevcut girdiyle eşleşen tüm bot adlarını bulur

local function matchingBotNames ( input )

    local names = {}

    local bots = player.GetBots()

    for _ , bot in ipairs(bots) do

        local name = bot:Nick()

        if name:lower():find(input) then
            table.insert(names,name)
        end
    end

    return names
end

local function onAutoComplete ( command , input )

    -- Dizeyi normalleştirir

    input = input:Trim():lower()

    -- Bot adlarını öneri olarak sarmalar

    local suggestions = {}

    local names = matchingBotNames(input)

    for _ , name in ipairs(names) do

        local suggestion = command .. ' "' .. name .. '"'

        table.insert(suggestions,suggestion)
    end

    return suggestions
end

local function onCommand () end

concommand.Add( 'bot-command' , onCommand , onAutoComplete )
```

`bot` komutuyla birkaç bot oyuncu oluşturun.

![Names Bots](https://gmod.tr/api/uploads/wiki/25d3fe0f32e50fb71788.png)

Adları aşağıdaki gibi önerilecektir.

![Names Command](https://gmod.tr/api/uploads/wiki/013da47227054fd89e83.png)

### Konsol komutu replikasyonu

Konsol komutları replike edilmez. Bir konsol komutunu replike etmek isterseniz, [AddCSLuaFile](https://gmod.tr/wiki/Global.AddCSLuaFile) kullanmanız veya hem sunucuda hem de istemcide özel davranış oluşturmanız gerekir.

Resimler için eski katkıda bulunanlara özel teşekkürler. Kod shawnjbragdon tarafından yazılmıştır.

- [GMod Wiki ana sayfası](https://gmod.tr/wiki)

---

[Tüm sunucular](https://gmod.tr/) · [GmodTR Launcher](https://gmod.tr/launcher) · [Rehber](https://gmod.tr/rehber) · [GMod Wiki](https://gmod.tr/wiki) · [GmodTR nedir?](https://gmod.tr/hakkinda) · [Sunucu ekle](https://gmod.tr/sunucu-ekle) · [Discord](https://discord.gg/gmodtr)

Kaynak: https://gmod.tr/wiki/Console_Command_Auto-completion
