라이더의 몇가지 설정방법을 알아보자.
그리고 유니티 코드에디터로 라이더를 쓰게되었는데 그리고 코드힌트나 룰에대해서 참견이 워낙 심하여 설정을 바꿔야하는데 대체 설정의 어디에서 뭘 찾아야는지 몰라서 기록해둔다.
Code Style Rule hint (코드 스타일 룰 힌트)
변수선언에서 var 또는 명시적 타입명을 쓰라고 하는 힌트
- Use ‘var’ (simple types)
- use explicit type
모든 Type대해 전부 var 쓰라고 난리인데 설정에서 끄거나 조정하려면 설정에서 Editor > Code Style > C# 에서 ‘var’ Usage in Declarations’ 항목을 검색해서 자신의 선호도에 맞게 변경하거나 Do now show로 설정할 수 있다.
선언과 초기화 를 함께 하라는 참견
join declaration and assignment
설정에서 join 을 검색해서 Editor > Inspection Settngs > Inspection Severity > C# 에서 join local variable declaration and assignment 등을 꺼주면 더이상 참견하지 않는다.
클래스 이름에 대한 경고
“Namespace does not correspond to file location, must be: ‘폴더이름’ ”
설정에서 “namespace”를 검색하고 Editor > Inspeciton Settings > Inspection Severity > C# 에서 “Namespace does not correspond to file location” 항목ㅇ르 끄면된다.
XML 도큐멘테이션
“XML element is not closed”
꺽쇠에 대한 잘못된 경고. 메서드에 XML 문서를 만들었을때 안에 설명글중에 제네릭 타입의 <T> 같은 꺽쇠가 들어간 타입명을 넣으면 “XML element is not closed” 라는 경고를 표시한다. XML에서 꺽쇠는 태그를 열고닫는 문자이다보니 이런 문제를 인식하나보다.
이걸 끄려면 라이더 설정에서 “xml”을 검색후 Editor > Inspeciton Settings > Inspection Severity > C# 에서 다음 둘중 하나를 끄면된다.
- Invalid XML documentation comment
- Invalid XML in XML comment
코드 스타일: 줄마춤, 줄바꿈
긴 라인을 짧게 줄바꿈 해주는 과한 친절.
코드정렬 단축키를 누르면 코드를 이쁘게 규칙에따라 정렬해주기는 하지만 나는 길게 작성해도 일부러 줄바꿈 하지 않는 경우가 많다. 특히 뒤에 주석문까지 길게 붙일땐 더욱 그렇다.
설정에서 align 검색 후 Editro > Code Style > C# 에서 Line Breaks and Wrapping 탭에 보면 General > Wrap long lines 항목이 있다. 체크해제하면 더이상 라인이 길다고 마음대로 줄바꿈 하지 않는다.
LINQ 명령문을 여러줄로 했을 때 줄을 이쁘게 맞추지 않는문제
라이더에 from in where select 같은 LINQ문에대한 줄맞춤이 기본적으로 설정되어있지 않다. 왜때문인지.
설정에서 “indent”를 검색, Editor > Code Style > C# 섹션에서 Tabs,Indents, Alignment 탭 아래쪽으로 내리다보면 “Align Multiline Constructs” 섹션중에 LINQ query 항목을 체크해주면 LINQ도 이쁘게 줄 맞춤해준다.
점을 기준으로 엔터쳤을때 : 메써드,프라피터 콜 길어질때 줄 바꿈 맞추기
“Method Calls” 을 검색, Editor > Code Style > C# 에서:
- [Tabs,Indents,Alignment] 탭에서 “Chained Method Calls” 을 찾아 체크해준다.
- [Line Breaks and Wrapping] 탭에서 Arrangement of Member Access Expressions 항목의
- Prefer to wrap after ‘.’ 을 체크해서 쩜의 앞에서 끊을지 뒤에서 끊을지 설정한다.
- “Wrap chained Method Calls” 의 옵션을 변경한다
라이더 코드 에디터 테마 설정
Rider의 테마는 여러 개발자들이 플러그인으로 배포하는데 무료도 있고 유료도 있다. 요즘은 다크테마가 유행이긴하지만 눈이 난시인 사람에겐 어두운배경은 오히려 불편하다.
컴퓨터의 화면이 전체적으로 어두우면 눈으로 들어오는 빛이 적어지기때문에 동공이 확대되는데 카메라의 조리개심도를 생각해보면 동공이 좁아져야 초점심도가 깊어진다. 눈도 마찮가지다.
그런이유로 나는 다크테마보단 눈이 빛을 많이 받을 수 있는 라이트테마를 선호한다. 밤하늘의 초승달을 바라보면 초승달이 6겹의 꽃잎처럼 보일정도로 나는 난시가 매우 심하다.
라이더 테마 커스텀 하기
라이더에서는 타인이 만든 테마를 적용하고도 코드 에디터에 글자폰트나 배경색, 글자색등이 부분부분 마음에 들지 않을땐 테마를 커스텀해서 바꾸면되는데 매우 많은 설정을 변경할 수 있다.
변경하기전에 테마를 복사해서 변경하고 적용하는 걸 추천한다.
먼저 Rider의 설정을 열고 (맥: cmd+,. 윈도우:control+,. 혹은 메뉴에서 Settings…), 위 그림처럼 에디터 > 색구성표를 선택해보면 자신이 사용중인 테마가 선택되어있다(현재 나는 ppy Light 테마 사용중).
그 옆에 기어모양 아이콘 을 클릭하고 ‘복제…’를 선택하면 테마가 복제된다. 그럼 아래처럼 copy가 붙는데 원하는 이름으로 바꾸고 사용하자.
이제 아래그림처럼 색 구성표 아래 여러 메뉴에서 바꾸려는 요소를 선택후 글자색깔이나 배경색, 효과, 테두리등을 바꿀수 있다.
색 구성표 아래에는 언어 디폴트값이 있고 더 아래 내려보면 C#같은 특정언어에대해서 적용할 수 도 있다.
특정언어를 선택해보면 각 요소들이 기본으로 색상지정 아래쪽에 (위 그림에서 주황색 박스 아래쪽) ‘다음에서 값 상속‘ 체크되어있을 것이고 ‘언어 디폴트 값‘ 메뉴와 같게 오버라이드 되어있는 요소들이 많을텐데, 그걸 체크를 해제하고 설정을 바꾸면 해당언어에서만 다르게 설정할 수 있다.
위 그림에서 요소(클래스명, 변수명, 키워드등)의 이름만 보고는 뭐가 뭔지 모를 수 있는데, 아래쪽 코드예시를 보면 대충 뭐가 뭔지 알수잇다. 예를들어 #if 처럼 배경이 눈에 띄는것들은 이름이 뭔지 몰라도 금방 알아볼수 있을 것이다.
라이더의 테마 커스텀 설정이 편리한건, 저 코드예시에서 글자를 클릭해보면 그 위에 이름목록과 연동된다는거다. 위 그림에서 빨간박스 어느쪽을 찍든 다른 한쪽이 스크롤되고 하이라이팅되어 이름으로 찾든, 코드의 글자를 직접 찍어서 찾든 찾기에 좋다. 하지만 그래도 요소가 너무많긴하다.
바꾸고 싶은 요소를 선택했다면 오른쪽위(주황박스)에서 전경색(글자색)이나 배경생, 효과(테두리/밑줄등)를 바꿔줄 수 있다.
설정을 바꾸면 오른쪽 아래 저장버튼을 반드시 클릭해야 저장된다. x를 눌러 창을 그냥 닫으면 취소된다.
짝을이루는 중괄호, 따옴표, 괄호 범위 하이라이트 바꾸기
그런데 이름목에도 안나오고 코드예시에도 안나오는 것들도 있는데, 내 경우 if문 괄호하나를 선택하거나, 따움표를 선택했을 때 같은 범위의 짝끼리 하이라이트해주는 ‘짝을이루는 중괄호'(이름도 몰랐음) 설정을 바꾸고 싶었던 일이 있었다.
내가쓰는 테마는 따옴표(혹은 괄호) 한쪽에 커서를 놓으면 짝을 이루는것을 하이라이트해줬는데 아래그림처럼 하이라이트 해주는 순간 글자색(전경색)과는 어울리지않는 배경색이 씌워져서 가독성을 심하게 헤치고 있었다.
이 경우는 에디터 > 색 구성표 > 일반 > 코드에서 찾을 수 있었다. 이름이 ‘짝을 이루는 중괄호‘인데 아래 코드예시에서는 나오지 않는다.
가독성이 좋지 못한 이유는 배경색만 바꾸고 전경색은 바뀌지 않도록 되어있다보니, 여러 코드색상중에 저 배경과 가독성이 맞지않는 색은 문제가 생긴거였다(괄호는 검은글자라서 괜찮았는데).
전경색도 바꾸도록 하면 ‘짝을 이루는 중괄호’ 표시상태일때 글자색도 같이 바꿀수 있다. 혹은 배경색마져 없애고 테두리 효과를 넣어도 되겠다.
그리고 저장버튼을 꼭 눌러줘야한다.
네이밍 컨벤션
Rider에서 C# 필드(변수), 프라퍼티, 클래스명등에대한 네이밍컨벤션 설정을 변경하려면 Settings 을 열어 Editor > Code Style > 언어(C#) 에서 Naming 탭을 열어보면 접미사, 접두사도 추가할 수 있고 다른 스타일을 추가할 수도 있다.
그런데 Unity 의 Serialized Field 에대한 설정은 다른곳에 있다. 이 규칙을 따르지않으면 아래처럼 라이더가 경고밑줄을 긋는다. 아니, 내맘이지 왜.
“Name ‘필드이름’ does not match rule ‘Unity serialized field’. Suggested name is ‘필드이름’
설정에서 Unity를 검색, Languages & Framework > Unity Engine 에서 Serialized Field naming Rules 항목ㅇ르 찾아 style을 바꿔주거나 접미사,접두사를 추가할 수 있다. 아쉬운 것은 위의 일반 C# 네이밍 설정에서처럼 두가지이상 스타일을 등록하진 못하나보다.
Rider 단축키 변경
단축키는 설정의 keymap에서 하면된다. 기본적으로 macOS와의 단축키가 많이 겹쳐있다.
Run Anyting
콘트롤키를 두번 누르면 나타나는 창을 통해서 무엇이든 검색해 실행할 수 있는데 문제는 나는 이미 콘트롤키 두개를 Alfred 단축키로 써오고 있었다는 점이었다.
라이더의 설정에서 Run Anything 을 검색 , Key 맵항목에 굉장히 많은 항목이 나오는데 아래 Other 항목까지 내려가보면 >Run Anything 있고 단축키가 없는 상태인데 이 단축키를 설정해주면 더이상 콘트롤키 두번으로 Run Anything이 동작하지 않는다.
VS Code에서 비슷한 기능을 하는 단축키인 Shift Cmd P 키로 변경해주었다.