Smart Completion avatar

Smart Completion [1.21.11] [1.20.6] [1.19.4]

Smart Completion

Потому что печатать — слишком много усилий

📖 О модификации

Клиентский мод, предоставляющий улучшенные подсказки автодополнения для команд.

Поддерживает модифицированные и пользовательские команды из датапаков или серверных плагинов и не требует установки на сервере.

💡 Использование

Чтобы ввести команду/аргумент, состоящий из нескольких слов, достаточно ввести только первые буквы этих слов.

Например, чтобы ввести /gamerule doDaylightCycle true, можно ввести /gr dc t

/gamerule doDaylightCycle false

Горячие клавиши

Помимо , можно использовать + для принятия подсказки, что автоматически вставит пробел, позволяя начать ввод следующего аргумента.

Кроме того, если текущая команда считается неполной (текст красный), нажатие примет выбранную подсказку (если есть), вместо попытки выполнить неверную команду.

По умолчанию, принятие подсказки с помощью + или кликом средней кнопкой мыши также удалит оставшийся текст после курсора, если вы решите отредактировать более ранний аргумент. Это поведение можно настроить для каждой клавиши/кнопки мыши.

🔀 Разрешение неоднозначности подсказок

Для различения похожих подсказок может потребоваться ввести более одной буквы для каждого слова.

Например, чтобы ввести fireDamage вместо fallDamage, который появляется первым при вводе fd, можно ввести fid.

fallDamage/fireDamage

Как правило, быстрее ввести несколько дополнительных букв, чтобы нужная подсказка оказалась в начале списка, чем использовать стрелки или перебирать варианты с помощью , так как набор текста можно довести до автоматизма.

Со временем вы запомните минимальное количество букв, необходимое для ввода часто используемых команд, и их ввод станет очень быстрым.

🔍 Просмотр подсказок

Поскольку введённые слова не обязательно должны находиться в начале названия, вы увидите гораздо больше полезных подсказок по сравнению со стандартной системой предложений Minecraft.

Например, если ввести /give @p wood, появятся подсказки для всех предметов, содержащих слово, начинающееся с wood.

/give @p wood

Кроме того, если запрос не совпадает с начальными буквами слов в подсказке, поиск также будет выполнен по всему тексту предложений для нечёткого соответствия (fuzzy match), которые отображаются после «умных» совпадений. Это полезно, когда вы не знаете точно, что ищете.

🎁 Дополнительные возможности

По умолчанию этот мод также меняет порядок подсказок на обратный, так что наиболее релевантная подсказка находится ближе всего к строке ввода, куда вы уже смотрите.

Если это кажется неудобным, можно отключить данную функцию следующей командой:

/smartcompletion invert_suggestion_order false

Мод также предотвращает случайный выбор подсказок мышью при их появлении под курсором — это старый баг, который усложняет ввод команд в маленьких окнах.

Как это работает?

Для каждой вводимой команды мы запрашиваем подсказки у сервера дважды. Один раз, опуская то, что вы ввели для последнего аргумента (слепой запрос), и другой раз, включая всё (информированный запрос). В большинстве случаев отправляется только один запрос, так как мы также кэшируем запросы во время ввода, чтобы уменьшить задержку и мерцание списка подсказок.

Затем мы предполагаем, что сервер ответит на слепой запрос всеми возможными подсказками, и выполняем умную фильтрацию и сортировку предложений на стороне клиента.

Если в информированном списке появятся какие-либо неожиданные подсказки, не соответствующие нашей фильтрации, они также будут показаны другим цветом, чтобы вы никогда не пропустили подсказки от потенциально сложных команд, которые предоставляют свои собственные «умные» предложения.

Для фильтрации подсказок используются два подхода:

  • Умное сопоставление сегментов вашего запроса с начальными буквами частей подсказки (gr соответствует gamerule) (принцип автодополнения в любом редакторе кода)
  • Слабый поиск каждой части вашего запроса внутри подсказки (lock on соответствует blockExplosionDropDecay) (полезно, когда вы не знаете, что ищете)

Как разделяются слова?

Слова разделяются по любому не-буквенному символу, а также по границам camelCase слов.

Кроме того, если команду нельзя разделить таким образом, мы предполагаем, что она написана в flatcase, как большинство команд Minecraft.

К сожалению, без словаря систематически разбить flatcase невозможно. Поэтому мы используем небольшой словарь слов, используемых в командах Minecraft, Fabric, (Neo)Forge и WorldEdit, чтобы попытаться разбить команды на слова.

Этот словарь может быть переопределён с помощью ресурспаков (см. вики), но не стесняйтесь сообщать о любых проблемах с некорректным разделением слов.

📋 Как сортируются подсказки?

Подсказки сортируются согласно следующим критериям (в порядке приоритета):

  • Подсказки ближе к курсору показываются первыми (/give @p chest предлагает [ перед minecart_chest)
  • Совпадения по начальным буквам слов показываются перед резервными совпадениями (doWeatherCycle > sendCommandFeedback)
  • Значительные совпадения, превышающие определённые пороги, показываются первыми (apple > acacia_pressure_plate)
  • Совпадения с большим количеством начальных букв показываются первыми (doInsomnia > disableRaids)
  • Совпадения, где некоторые начальные буквы могли соответствовать более чем одному слову, показываются первыми (doDaylightCycle > doWeatherCycle)
  • Подсказки с меньшим количеством слов показываются первыми (doInsomnia > doImmediateRespawn)
  • Совпадения ближе к началу подсказки показываются первыми (gamemode > defaultgamemode)
  • Более короткие подсказки показываются первыми (tp > tell)

В остальных случаях подсказки отображаются в исходном порядке, предоставленном сервером (обычно алфавитном) (fallDamage > fireDamage).

В настоящее время нет возможности настроить этот порядок. Если у вас есть предложения по его улучшению, не стесняйтесь делиться ими. Критерии основаны на естественных ожиданиях и позволяют разрешать конфликты, вводя больше начальных букв.

🎨 Настройка

Подсказки выделяются согласно стилям, определённым в файле style.json, который может быть переопределён с помощью ресурспаков (см. вики).

По умолчанию совпадения внутри подсказки выделяются синим цветом.

Альтернативные совпадения для части запроса (doDaylightCycle), резервные совпадения (sendCommandFeedback) и неожиданные серверные подсказки выделяются тёмно-бирюзовым цветом.

Кроме того, если подсказка начинается с префикса слов, за которым следует двоеточие (например, пространство имён ресурса), он будет выделен тёмно-серым цветом, если не совпадает с запросом (minecraft:golden_apple).

Помощь

У этого мода есть вики, которую можно изучить.

Также, если у вас возникли проблемы или вы просто хотите поздороваться, заходите на наш Discord-сервер.

Скачать Smart Completion

 
Тип Скачать Версия Загрузчик Обновлено Размер
Releasesmartcompletion-1.20.4-neoforge-2.0.2.jar1.20.4+1 NeoForge27 августа 2024115,6 КБ
Releasesmartcompletion-1.20.4-fabric-2.0.2.jar1.20.4+1 Fabric27 августа 2024115 КБ
Releasesmartcompletion-1.20.6-neoforge-2.0.2.jar1.20.6NeoForge27 августа 2024114,8 КБ
Releasesmartcompletion-1.20.6-fabric-2.0.2.jar1.20.6Fabric27 августа 2024114,7 КБ
Releasesmartcompletion-1.21-neoforge-2.0.2.jar1.21+1 NeoForge27 августа 2024114,8 КБ
Releasesmartcompletion-1.21-fabric-2.0.2.jar1.21+1 Fabric27 августа 2024114,7 КБ
Releasesmartcompletion-1.16.5-forge-2.0.1.jar1.16.3+2 Forge16 августа 202495,7 КБ
Releasesmartcompletion-1.16.5-fabric-2.0.1.jar1.16.3+2 Fabric16 августа 202495,8 КБ
Releasesmartcompletion-1.17.1-forge-2.0.1.jar1.17+1 Forge16 августа 202494,7 КБ
Releasesmartcompletion-1.17.1-fabric-2.0.1.jar1.17+1 Fabric16 августа 202495,2 КБ
Пожалуйста авторизуйтесь, чтобы оставить свой комментарий.