emacsのswift-modeパッケージの使い方


Table of Contents

1 swift-modeパッケージとは

emacs上でSwiftのコードをハイライト表示するemacsパッケージです。

flycheckもサポートしており、動的なコーディングチェックも実行できます。

Swiftのシェルを起動してから、バッファの内容を実行する機能もサポートしてます。

シェルを起動せずに、swiftコマンドにそのままバッファの内容を渡すにはquickrunパッケージで可能になります。

2 swift-modeパッケージとquickrunパッケージのインストール方法

M-x package-list-packagesでインストールします。

MELPAにあるので、.emacsに以下を追加します。

(require ‘package)(add-to-list ‘package-archives ‘(“melpa-stable” . “http://melpa-stable.milkbox.net/packages/”))(package-initialize)

swift-modeパッケージのバージョンは0.3.0でした。

swift-mode 0.3.0 installed Major-mode for Apple’s Swift programming language.

quickrunパッケージのバージョンは2.2.5でした。

quickrun 2.2.5 installed Run commands quickly

3 .emacs

カスタム変数とデフォルト値は以下の通りです。

 

swift-indent-offset 4 swift-indent-switch-case-offset 0 swift-indent-multiline-statement-offset 2 swift-repl-executable “xcrun swift”

 

swift-repl-executableはswiftのシェルを起動するコマンドです。カスタム変数を変更する場合は.emacsで以下を設定します。

(custom-set-variables ‘(swift-indent-offset 2) ‘(swift-indent-multiline-statement-offset 1))

swift-modeでのquickrunのキーバインディングを追加します。

(add-hook ‘swift-mode-hook ‘(lambda() (local-set-key “C-cC-c” ‘quickrun) (local-set-key “C-cC-a” ‘quickrun-with-arg) ))

3.1 flycheck用の設定

M-x package-list-packages経由でflycheckをインストールします。

flycheck 0.24 installed On-the-fly syntax checking

after-initフックスクリプトでflycheckを有効にします。

(add-hook ‘after-init-hook #’global-flycheck-mode)

flycheck-checkersにswiftを追加します。flycheck-swift-sdk-pathにSDKのパスを入れます。

(add-hook ‘swift-mode-hook ‘(lambda() (add-to-list ‘flycheck-checkers ‘swift) (setq flycheck-swift-sdk-path (replace-regexp-in-string “n+$” “” (shell-command-to-string “xcrun –show-sdk-path –sdk macosx”))) ))

4 ショートカット

swift-modeのショートカットは以下の通りです。

 

C-cキー C-zキー swiftのシェル起動 C-cキー C-fキー バッファをswiftのシェルで実行 C-cキー C-rキー リージョンをswiftのシェルで実行

 

quickrun用に追加したショートカットは以下の通りです。

 

C-cキー C-cキー バッファをswiftで実行 C-cキー C-aキー 引数を指定してバッファをswiftで実行

 

5 起動方法

.swiftを拡張子に持つファイルを開いた場合にswift-modeが実行されます。

M-x swift-modeと打つことでもswift-modeが実行されます。

6 実行例

以下のようになりました。https://dl-web.dropbox.com/s/9s3chkuj70x4oba/0001_Swift-Highlight.png

Android | Linux | SDL - Narrow Escape