[C#/ReSharper] Enhanced Tooltip 플러그인 업데이트됨!

JetBrains ReSharper

JetBrains ReSharper

Visual Studio는 다양한 확장 기능을 지원합니다. 단순히 솔루션 탐색기의 아이콘을 바꾸는 확장 기능부터 시작해서 빌드할 때마다 특정 규칙에 맞춰서 assembly의 version을 자동으로 설정해주는 확장[1], 그리고 이번 포스트에서 사용할 플러그인의 모체가 되는 JetBrains사의 ReSharper와 같은 복잡하고 강력한 확장 기능까지 지원하죠.

플러그인의 플러그인

이번 포스트에서 말씀드리는 Enhanced Tooltip은 ReSharper의 플러그인입니다. 그런데 ReSharper는 Visual Studio 확장 기능이니, 다시 말해 플러그인의 플러그인이란 말이죠.

이번 포스트는 ReSharper에 대한 리뷰가 아니므로 자세히 적지는 않겠지만, 무려 플러그인의 플러그인이라는 말에서 짐작하실 수 있듯, ReSharper는 상당히 무거운 확장 기능입니다. 이는 아주 오래 전, ReSharper 출시 초기부터 그래왔고, 아마 앞으로도 그럴 것 같습니다. 요즘은 Visual Studio의 버전이 올라갈 때마다 ReSharper가 독자적으로 지원하던 기능들이 하나 둘 VS에 구현돼 포함되고 있기 때문에 사용자층도 줄어들고 있다고 느껴지네요.[2]

그러나, 앞서 말씀드렸듯 ReSharper는 강력한 확장 기능입니다. 그리고 이는 현재 VS2019에서도 마찬가지입니다. 물론, JetBrains Rider IDE를 사용하면 더욱 가볍게 ReSharper가 제공하는 대부분의 기능과 더 많은 플러그인을 사용할 수 있긴 하지만, PostSharp 등 VS에서만 돌아가는 매우 유용한 확장 프로그램을 사용해야만 하는 경우, 혹은 특정 언어를 코딩할 때 사용하는 VS에 적응이 완벽하게 돼버려서 다른 IDE로 옮기기 힘든 상황 등에서는 VS 사용을 유지하며 생산성을 높이는 데에는 역시 ReSharper가 최고라고 생각합니다.

Enhanced Tooltip 플러그인

서론이 길었죠? 아무튼, 이번 포스트는 ReSharper에 대한 것이 아니라 ReSharper의 플러그인인 Enhanced Tooltip에 대한 내용을 다룰 겁니다.

Visual Studio 기본 툴팁 vs Enhanced Tooltip

아래는 Visual Studio 기본 툴팁의 모양입니다.

Visual Studio 기본 툴팁

Visual Studio의 버전이 올라가며 충분한 정보를 제공해줍니다만, 뭔가 칙칙하고 더 많은 정보가 나오길 원하는 사람에겐 부족할 수 있습니다.

아래는 Enhanced Tooltip을 적용한 화면입니다.

Enhanced Tooltip

Parameter Info

뭔가 더 컬러풀해졌죠? 물론 이게 다가 아닙니다. 커스터마이징이 가능가거든요.

커스터마이징

Enhanced Tooltip의 설정은 ReSharper 메뉴 - Environment - IntelliSense - Enhanced Tooltip에서 할 수 있습니다.

설정 위치

해당 섹션으로 이동하면 아래와 같이 다양한 옵션을 취향에 맞게 조정할 수 있습니다.

Enhanced Tooltip 커스터마이징

저는 이미 조정한 옵션이니 여러분이 사용하실 때엔 입맛에 맞게 잘 읽어보시고 조정하시기 바랍니다.

문제점

물론 문제도 있습니다. 다행히도 성능이나 버그는 아닙니다.

끔찍하게도 플러그인 업데이트 주기가 문제입니다.

이번 Enhanced Tooltip 업데이트는 거의 3개월만에 이뤄졌습니다. ReSharper가 업데이트된지 한참 시간이 지나고 나서야 업데이트가 된 것이죠. 사실, ReSharper 플러그인의 대부분이 이러한 문제를 갖고 있습니다.

이렇게 단순히 UI가 변경되는 플러그인일지라도 한 번 익숙해졌을 때 기능이 사라진다면 적응하기가 힘들게 됩니다.[3] 때문에 만약 사용하실 생각이시라면 이러한 점을 잘 생각해보시고, 이런 일이 생겼을 때 아무 문제가 없는 상황인지 판단하신 후 사용하시기 바랍니다.


  1. Automatic Versions ↩︎

  2. 스택오버플로우, 레딧 등의 ReSharper에 관한 언급을 보며 느낀 점 ↩︎

  3. 당연히, Exceptional이나 ConfigureAwait Checker 등 코드에 영향을 주는(= 생산성에 영향을 주는) 플러그인은 말할 것도 없죠. ↩︎

댓글

이 블로그의 인기 게시물

C# 남아도는 메모리에도 불구하고 OutOfMemoryException이 발생한다면?

USB를 뒤는 괜찮은데 앞에 꽂으면 인식이 힘들다?

MySQL 데이터 타입과 Java 데이터 타입 비교/매칭