Skip to main content

Command Palette

Search for a command to run...

[Xcode/Swift] Format On Save 설정

Updated
1 min read

들어가며

Xcode가 기본적으로 제공하는 포맷팅은 꽤나 빈약한 편입니다.

이를 개선하기 위해서 추가적인 익스텐션을 설치하여 저장 시 자동 코드 포맷팅을 설정해보겠습니다.

Swift format for Xcode Extension 설치

우리 애증의 Xcode는 익스텐션을 설치하는 방법도 vscode 또는 Android Studio에 비해서 괴랄한 편인데요. Mac OS 패키지 매니저인 Homebrew를 통해서 설치해보도록 하겠습니다.

Format on save를 적용하기 위해서 SwiftFormat 익스텐션을 설치해야합니다. command-line tool로도 해당 익스텐션을 사용할 수 있으나, 저는 Xcode 에디터 내 익스텐션으로 활용하는 것을 추천드립니다.(편해요) 다음은 Xcode 에디터 익스텐션을 설치하는 방법입니다.

터미널을 키고 Homebrew를 통해 파일을 설치합니다.

brew install --cask swiftformat-for-xcode

설치가 완료되면 해당 파일을 열어줍니다.

파일을 열면 다음과 같은 창이 나오는데요. 주어진 설명대로 그대로 설치해줍니다.

성공적으로 설치를 완료했다면 설치된 확장프로그램 목록에 표시가 됩니다.

이제 cmd + s로 저장을 하게 되면 못난이 swift 코드를 자동으로 이쁘게 포맷팅 해줍니다.

결론

이제까지 vscode만 사용해왔기 때문에 자동 포맷팅이나 여러가지 확장자를 편리하게 설치할 수 있던 환경과는 조금 달라서 적응이 어려운 것 같습니다.

edited by 김동한

More from this blog

[ZSH] tree 사용하기

들어가며 큰 규모의 프로젝트를 출시한 뒤, 후일을 위해서 더 늦기 전에 파일 정리 및 문서화를 진행해야했다. 문서화 작업을 하는 중에 기왕 정리하는 거 파일 구조를 이쁘게 트리 구조로 나열하여 코멘트를 달면 나중에 보더라도 이해하기 더 쉬울 것 같았다. 어떻게 해야 간지나는 트리 구조를 만들 수 있을까 방법을 찾다보니 역시나 파일 구조를 트리로 이쁘게 출력해주는 커맨드 툴이 존재했다. tree 커맨드에 대해서 알아보고 알짜배기 내용만 정리했다....

Feb 21, 20242 min read

[Next.js] parallel routes & intercepting routes

트위터 로그인 모달창을 만들어보며 넥스트의 parallel routes 와 intercepting routes 을 학습한 내용을 정리해보았습니다. 트위터 로그인 창을 확인해봅시다. 루트 디렉토리 화면을 배경으로 i/flow/login 페이지가 동시에 표시되고 있습니다. 저는 app router 를 학습하기 전까지는 createPortal 을 사용하여 포탈 영역에 로그인 컴포넌트를 띄우는 방식을 사용했었습니다. const NoLogin =()=...

Feb 1, 20244 min read

C/C++ 이진 트리(binary tree) 개요 및 구현(1)

개요 트리는 노드들이 나무 가지처럼 연결된 비선형 계층적 자료구조이다. 하위 트리가 존재하고, 그 노드에 또 하위 트리가 존재하는 자료구조 이다. 트리의 맨 위에 있는 루트 노드가 존재한다. 우리가 알아볼 트리는 이진 트리이다. 이진 트리는 자식 노드(부모로부터 아래로 이어진 노드)가 2개 이하인 구조를 말한다. 트리의 사용 사례로는 다음과 같다 계층 적 데이터 저장(파일,폴더) 효율적인 검색 속도 힙 데이터 베이스의 인덱싱 트리에 ...

Jan 31, 20244 min read

[React] Server component (RSC)

React.js 18 에 도입된 리액트 서버 컴포넌트는 서버에서 동작하는 리액트 컴포넌트를 의미합니다. Next가 권장하는 라우팅 방식인 app router의 기반이 되는 컴포넌트이기 때문에 app router 를 이해하기 위해서는 server component 에 대한 이해가 필요합니다. server component 리액트는 클라이언트단만을 컴포넌트화하는 대신, server component라는 개념을 통해 서버 영역을 컴포넌트화합니다. ...

Jan 29, 20243 min read

Flutter, JavaScript

42 posts