Eclipse의 코드 보완으로 「엣?」이 되었을 때~부분 일치형 코드 보완(substring code completion)으로 집계하면~

개요


  • Eclipse의 코드 완성 기능으로 특정 클래스의 메소드 이름을 보완 할 때 의도하지 않은 보완이됩니다! 그렇다면 대책입니다.
    (Eclipse NEON에서 추가 된 부분 일치에서 코드 완성 (Substring code completion) 기능 부작용을 억제하는 방법)

  • 환경


  • Eclipse IDE 2019‑06

  • 「의도하지 않는 보완」이란 ↓와 같은 경우(보는 편이 빠르다)



    Arrays에서 도트(.)를 치면 코드 완성이 끊어진 다음 tostring을 입력하고 엔터를 누르면 deepToString이 선택되어 버리는 현상 발생.



    코드를 보완 할 때 부분 일치 (substring)는 편리하지만



    아래와 같이 string만 입력해도 메소드명의 일부에 string가 포함되는 것을 후보로서 준다



    수정 방법 그 1 : 메소드명의 부분 일치를 오프한다



    메소드명의 부분 일치가 나쁨을 하고 있는 면도 있으므로, 이 기능을 설정으로부터 오프 해 본다.

    Eclipse 메인 윈도우에서 Window>Preference>Java>Editor>Content Assist를 선택하면 Show substring matches라는 항목 이 있으므로 그것을 끄기



    부분 일치 (substring)를 사용하지 마십시오.



    꽤 좋은 느낌.
    아까처럼 의도하지 않고 deepToString이 선택되는 것은 없어졌다.



    당연하지만 부분 일치 (substring)가 꺼져 있으면 부분 일치로 보완 할 수 없습니다.



    겨우, Arrays. 뒤에 string이라고 쳐 보면, 후보가 아무것도 나오지 않게 되었다.



    수정 방법 2



    우선, 아까처럼 Window>Preference>Java>Editor>Content Assist에서 설정화면 열어 는 체크를 넣는다.

    이것으로 부분 일치를 일단 유효하게 한다.

    그런 다음 Content Assist의 [+] 표시를 사용하여 설정을 확장하고 Advanced를 선택합니다.



    다음으로 ↓과 같이 Java Proposals에 체크를 넣는다.



    이제 OK

    코드 완성 시도



    자, 이 설정으로 다시 코드 완성을 시도합니다.

    의도한 동작으로 움직이는 패턴



    부분 일치로 코드 완성 시도



    부분 일치 쪽도 제대로 동작하고 있다.



    수정 방법 2 쪽이, 보다 의도한 동작(부분 일치도 대고, 코드 보완도 의도대로)이 되는 것 같다.

    요약


  • Eclipse의 코드 보완으로 「의도하지 않은 보완이 되어 버린다」라고 생각했을 때의 현상과 대책에 대해 설명했습니다
  • 부분 일치에서 코드 완성 (Substring code completion) 기능은 Eclipse NEON으로 추가 된 기능입니다. 하는 대책을 치는 것으로 부작용을 억제할 수 있는 것을 알았습니다.
  • 코드 완성에 대해서는 Intellij IDEA(나 Android Studio) 쪽이 대부분 선행해 substring code completion에 대응하고 있어, 이러한 부작용도 없도록 미리 튜닝되고 있는 것 같습니다.
    (Eclipse에서 조우할 때까지 당전에 눈치채지 못했지만, 이런 UI 연구·사용감의 튜닝으로 태어나는 미차가 생산성이나 품질에 영향을 주는구나, 뭐라고.)
  • 좋은 웹페이지 즐겨찾기