Add tab completion for Git branches in Powershell

Вы устанавливаете Constants.PLAYER_UI на Handler самого последнего созданного занятия. Итак, вот что происходит:

  • Вы создаете Home, он создает Constants.PLAYER_UI Handler со ссылкой на Home, которая затем вызывает правильный метод.
  • Затем вы переходите к GeneralPlayer. Это сбрасывает Constants.PLAYER_UI Handler с GeneralPlayer, созданным Handler. Это содержит ссылку на GeneralPlayer, поэтому она вызывает правильный метод.
  • Вы возвращаетесь к Home. Однако onCreate() не вызывается, поскольку Home уже создан. Таким образом, Constants.PLAYER_UI все еще ссылается на обработчик, созданный GeneralPlayer . Поэтому, когда этот метод вызывается (откуда-то еще, я бы предположил), он использует действие GeneralPlayer, на которое он ссылался, и выводит сообщение GeneralPlayer.

Вам нужно, чтобы Handler была константой? Вы можете использовать его как переменную экземпляра в действии, чтобы новый экземпляр создавался с каждым действием, а также уничтожался вместе с ним:

abstract class PlayerAbstractClass() : AppCompatActivity() {
    private val playerUiHandler = Handler(object : Handler.Callback {
        override fun handleMessage(msg: Message?): Boolean {
            updateButtonUI()
            return true
        }
    })

    protected abstract fun updateButtonUI()
}

Таким образом, ваша Home активность имеет свой собственный [ 1121] экземпляр, который он будет вызывать каждый раз, когда вы находитесь на Home, и аналогично GeneralPlayer будет иметь другой экземпляр playerUiHandler, который вызывается, когда вы участвуете в этом действии. В качестве дополнительного бонуса вы больше не пропускаете Context и держите ссылки на действия, которые должны были быть уничтожены. [Тысяча сто тридцать одна]

36
задан Wouter J 4 June 2013 в 20:56
поделиться

3 ответа

Для того, чтобы это было возможно, должен существовать поставщик git для PowerShell.

После быстрого поиска, похоже, существует что-то похожее, причудливое, но точно названное posh-git:

http://github.com/dahlbyk/posh-git

Набор сценариев PowerShell, которые обеспечить интеграцию Git/PowerShell

  • Подсказка для репозиториев Git: подсказка в репозиториях Git может показать текущую ветку и состояние файлов (дополнения, изменения,
    делеции) внутри.
  • Автозавершение с помощью табуляции: обеспечивает завершение с помощью табуляции для общих команд, когда используя git. Например. git ch --> git checkout

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

См. profile.example.ps1, чтобы узнать, как можно интегрировать завершение табуляции и/или подсказка git в свой собственный профиль. Вы также можете выбрать, будет ли расширенные команды git показаны в расширение вкладок или только простые/общие команды. По умолчанию просто.

35
ответ дан 27 November 2019 в 06:13
поделиться

Я записал этой небольшой PS "драгоценный камень", если шикарный мерзавец слишком много:

function co
{
    param(
        [Parameter(Mandatory)]
        [ValidateNotNullOrEmpty()]
        [ArgumentCompleter({
            param($pCmd, $pParam, $pWord, $pAst, $pFakes)

            if ([string]::IsNullOrWhiteSpace($pWord)) {
                return "master";
            }

            (git branch --format='%(refname:short)') | Select-String "$pWord"
        })]
        [string] $branch
    )

    git checkout $branch;
}
1
ответ дан 27 November 2019 в 06:13
поделиться

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

3
ответ дан 27 November 2019 в 06:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: