go-prompt v0.2.0의 새로운 기능 소개

사생활이 바쁘게 너무 go-prompt 의 유지 보수 시간이 걸리지 않았습니다만, contribute 하려고 하고 있는 아는 사람이 있었으므로, 소수로 개발 스프린트 실시 했습니다. 결과적으로는 꽤 잘 되어, 참가자 3명 전원이 PR을 보내 병합, issue는 8개 줄었습니다.

기본적인 사용법은 go-prompt를 사용하여 풍부한 명령 줄 도구를 만드는 방법 으로 소개했으므로, 이번은 어젯밤 v0.2. 0 으로 릴리스 한 수정점을 소개합니다 (CHANGELOG 는 여기 ).

추가한 기능



페이지네이션





완성 후보가 매우 많더라도 go-prompt는 지금까지 화면에 한 번에 표시할 수 있는 수만 선택할 수 있었습니다.
이번 페이지 네이션의 구현에 의해, 좁은 화면 중에서도 많은 후보를 선택할 수 있게 됩니다.

Windows 지원





go-prompt를 공개하자마자 mattn 씨가 PR을 주고 있었지만 몇 가지 버그 수정과 리팩토링을 넣어 병합했습니다.
단지 몇 가지 잘 되지 않는 거동도 남아 있으므로, 이쪽을 이용할 때는 주의해 주세요. 확인하는 범위라면

  • Shift+Tab이 작동하지 않음
  • 자세한 원인을 알 수 없지만 Windows에서도 shift+tab 누르면 VK_OEM_BACKTAB이 발화한다면 go-tty는 그것을 처리하는 코드가 들어 있지 않기 때문에 처리할 수 없는 것 같다 (by orisano)


  • 화살표 키가 작동하지 않음
  • Windows에서 통과하는 화살표 키의 바이트 열이 다른지 처리하지 못했습니다. 이쪽은 실제로 보내져 오는 바이트열을 조사하면 수정할 수 있을 것 같다


  • 추가
    mattn 님의 PR에서 수정되었습니다. 현재라면 깜빡임이 많다든지 세세한 과제는 남아 있습니다만, 한 대로 동작하게 되었다고 생각합니다. v0.2.1로 태그를 자르고 릴리스했습니다.

    동적 접두사




    go-prompt/_example/live-prefix/main.go

    과거에 한 번 PR을 받고 있었지만 그다지 알기 쉬운 인터페이스는 아니었기 때문에, 병합하지 않고 클로즈하고 있었습니다.
    다만 issue 를 보고 있으면 꽤 요망이 많아, ktr0731/evans 등은 조금 응집한 실장이 필요하게 되고 있었으므로 정식으로 서포트했습니다.

    개발 스프린트 이후 수정



    Docker 컨테이너 내에서 panic하는 버그



    pseudo tty가 allocate 될 때까지, ioctl 시스템 콜로 화면폭을 취득하기 위해서 TIOCGWINSZ 를 건네주면(0, 0)이 돌아오는 것 같고, 특정의 계산 부분에서 0 나눗셈이 일어나 panic 하고 있었습니다. ctop 개발자가 PR을 주고 수정되었습니다.

    2행 이상 입력한 후 단말 윈도우를 굉장히 작게 하면 panic하는 현상





    다양한 단말기에서의 표시 무너짐



    Terminal UI의 가장 어려운 부분입니다만, 특정의 단말 에뮬레이터에서 밖에 일어나는 표시 무너짐이 상당히 있습니다.


    터미널 에뮬레이터
    모습
    현상


    iTerm2

    화면의 오른쪽 가장자리에서 완성하려고하면 드롭 다운이 다음 행에 표시됩니다.

    Terminal.app

    2행째 이후로 백 스페이스를 치면, 1문자씩 어긋나 간다

    Goland

    줄을 가로질러 길게 입력하면 골랜드 터미널만 깨집니다.

    GNU Terminal

    iTerm2 현상과 함께


    이것들은 바로 수정되었습니다.

    결론



    이번 스프린트에 참가해 준 멤버는 코어 개발자로서 collaborator에 추가했습니다.
    지난 2일의 변경으로 꽤 좋아졌으므로, 계속 개선해 나가고 싶다.

    좋은 웹페이지 즐겨찾기