Takahiro Octopress Blog

-1から始める情弱プログラミング

Xcode11.4でやっと修正されたドキュメントコメントの挿入ショートカット

はじめに

XcodeでiOSアプリを開発する際に、ほとんどの開発者はドキュメントコメントを書く機会があると思います。

Xcodeでは、メニューバーから
Editor > Structure > Add Documentation を選択すると、最適な形式のドキュメントコメントを差し込んでくれます。
( または、command + option + / でショートカットできます。 )

実はこの機能が困ったことにXcode11当初でバグがありました。

Xcode11で発生していたバグと、その解消

例えば、下記のようなメソッドがある場合、

1
2
3
func connect(word1: String, word2: String) -> String {
  return text1 + text2
}

ドキュメントコメントは、

1
2
3
4
5
6
7
8
9
/// 引数に指定した2つのワードを連結した結果を返却します
///
/// - Parameters:
///   - word1: 1つ目のワード
///   - word2: 2つ目のワード
/// - Returns: 2つのワードを連結した結果
func connect(word1: String, word2: String) -> String {
  return text1 + text2
}

のようになります。

Xccode10.xまでは上記期待値の元、ドキュメントコメントを追加していたのですが、
これがXcode11にアップデートしてみると…

1
2
3
4
5
6
7
8
/// 引数に指定した2つのワードを連結した結果を返却します
///
/// - Parameters:
///   - word1: 1つ目のワード
///   - word2: 2つ目のワード
func connect(word1: String, word2: String) -> String {
  return text1 + text2
}

のように戻り値のあるメソッドだったとしても Returns を挿入してくれなくなってしまっていました。

また、

1
2
3
4
protocol sample {

  func connect(word1: String, word2: String)
}

という protocol メソッドを定義した場合は逆に、

1
2
3
4
5
6
7
8
9
protocol sample {

  /// <#Description#>
  /// - Parameters:
  ///   - word1: <#word1 description#>
  ///   - word2: <#word2 description#>
  /// - Returns: <#description#>
  func connect(word1: String, word2: String)
}

のように不必要な Returns が挿入されてしまっていました。

上記、Xcode11.4にて、やっと正しく挿入されるように修正されたようです。

因みに、筆者としては、

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// Xcode11以降の挿入されるドキュメントコメント

/// <#Description#>
/// - Parameters:
///   - word1: <#word1 description#>
///   - word2: <#word2 description#>
/// - Returns: <#description#>

// Xcode10.xで挿入されていたドキュメントコメント

/// <#Description#>
///
/// - Parameters:
///   - word1: <#word1 description#>
///   - word2: <#word2 description#>
/// - Returns: <#description#>

のようにXcode10.xまでのメソッド概要と Parameters の間に1行あける感覚に慣れてしまっていたため、
Xcode11以降の書き方に違和感があり、手動で1行挿入してしまっていたりします笑。

まとめ

何はともあれ、地味に面倒だと感じていた部分がやっと修正されて何よりです。
Xcode11系は当初から幾つかの致命的なバグを抱えていましたが、
ひとまず細かなところも修正されて安定的に利用できるようになりましたかね〜

Comments