많은 언어 는 생성기 (예 : 또는 doxygen )가 동일한 코드를 구문 분석하여 코드 문서를 생성 할 수 있도록 문서 주석 을 지원 합니다.javadoc
Swift에 이와 같은 형식 문서 주석 기능이 있습니까?
// MARK:
주석은 미래의 Xcode 버전으로 예정되어 있습니다.
많은 언어 는 생성기 (예 : 또는 doxygen )가 동일한 코드를 구문 분석하여 코드 문서를 생성 할 수 있도록 문서 주석 을 지원 합니다.javadoc
Swift에 이와 같은 형식 문서 주석 기능이 있습니까?
// MARK:
주석은 미래의 Xcode 버전으로 예정되어 있습니다.
답변:
문서 주석은 Xcode에서 기본적으로 지원되며 빠른 도움말 ( ⌥심볼을 클릭 할 때 팝업 및 빠른 도움말 검사기 ⌥⌘2) 에서 스마트하게 렌더링 된 문서를 생성 합니다.
기호 문서 주석은 이제 풍부한 놀이터 주석에서 사용 된 것과 동일한 Markdown 구문을 기반으로 하므로 놀이터에서 수행 할 수있는 많은 작업을 이제 소스 코드 문서에서 직접 사용할 수 있습니다.
구문에 대한 자세한 내용은 마크 업 서식 참조를 참조하십시오 . 풍부한 운동장 의견과 기호 문서에 대한 구문에는 약간의 차이가 있습니다. 이것들은 문서에서 지적됩니다 (예 : 블록 따옴표는 놀이터에서만 사용할 수 있습니다).
아래는 기호 문서 주석에 현재 작동하는 구문 요소의 예와 목록입니다.
Xcode 7 베타 4 ~ " - Throws: ...
"를 최상위 목록 항목으로 추가 하여 매개 변수와 함께 표시되며 빠른 도움말의 설명을 반환합니다.
Xcode 7 베타 1 ~ Swift 2의 구문에 대한 몇 가지 중요한 변경 사항-이제 마크 다운 (놀이터와 동일)을 기반으로하는 문서 주석.
Xcode 6.3 (6D570) ~ 들여 쓰기 된 텍스트가 이제 코드 블록으로 포맷되며, 이후 들여 쓰기가 중첩됩니다. 이러한 코드 블록에 빈 줄을 남겨 두는 것은 불가능한 것으로 보입니다. 그렇게하면 텍스트가 마지막 줄의 끝에 문자가 붙습니다.
Xcode 6.3 베타 ~ 인라인 코드를 백틱을 사용하여 문서 주석에 추가 할 수 있습니다.
/// Text like this appears in "Description".
///
/// Leave a blank line to separate further text into paragraphs.
///
/// You can use bulleted lists (use `-`, `+` or `*`):
///
/// - Text can be _emphasised_
/// - Or **strong**
///
/// Or numbered lists:
///
/// 7. The numbers you use make no difference
/// 0. The list will still be ordered, starting from 1
/// 5. But be sensible and just use 1, 2, 3 etc…
///
/// ---
///
/// More Stuff
/// ==========
///
/// Code
/// ----
///
/// Use backticks for inline `code()`. Indentations of 4 spaces or more will create a code block, handy for example usage:
///
/// // Create an integer, and do nothing with it
/// let myInt = 42
/// doNothing(myInt)
///
/// // Also notice that code blocks scroll horizontally instead of wrapping.
///
/// Links & Images
/// --------------
///
/// Include [links](https://en.wikipedia.org/wiki/Hyperlink), and even images:
///
/// ![Swift Logo](/Users/Stuart/Downloads/swift.png "The logo for the Swift programming language")
///
/// - note: That "Note:" is written in bold.
/// - requires: A basic understanding of Markdown.
/// - seealso: `Error`, for a description of the errors that can be thrown.
///
/// - parameters:
/// - int: A pointless `Int` parameter.
/// - bool: This `Bool` isn't used, but its default value is `false` anyway…
/// - throws: A `BadLuck` error, if you're unlucky.
/// - returns: Nothing useful.
func doNothing(int: Int, bool: Bool = false) throws -> String {
if unlucky { throw Error.BadLuck }
return "Totally contrived."
}
둘 다 ///
(인라인)와 /** */
(블록) 스타일의 코멘트 문서 주석 생산 지원됩니다. 개인적으로 시각적 인 /** */
주석 스타일을 선호하지만 Xcode의 자동 들여 쓰기는 앞의 공백을 제거하여 복사 / 붙여 넣기시이 주석 스타일의 서식을 손상시킬 수 있습니다. 예를 들면 다음과 같습니다.
/**
See sample usage:
let x = method(blah)
*/
붙여 넣을 때 코드 블록 들여 쓰기가 제거되고 더 이상 코드로 렌더링되지 않습니다.
/**
See sample usage:
let x = method(blah)
*/
이러한 이유로 나는 일반적으로을 사용 ///
하고이 답변의 나머지 예제에 사용합니다.
표제:
/// # My Heading
또는
/// My Heading
/// ==========
소제목:
/// ## My Subheading
또는
/// My Subheading
/// -------------
수평 규칙 :
/// ---
순서가없는 (글 머리 기호) 목록 :
/// - An item
/// - Another item
+
또는 *
정렬되지 않은 목록을 사용 하거나 일관성을 유지해야합니다.
순서 (번호) 목록 :
/// 1. Item 1
/// 2. Item 2
/// 3. Item 3
코드 블록 :
/// for item in array {
/// print(item)
/// }
최소 4 개의 공백 들여 쓰기가 필요합니다.
강조 (이탈리아) :
/// Add like *this*, or like _this_.
강력 (굵게) :
/// You can **really** make text __strong__.
동일한 요소에 별표 ( *
)와 밑줄 ( _
)을 혼합 할 수 없습니다 .
인라인 코드 :
/// Call `exampleMethod(_:)` to demonstrate inline code.
연결:
/// [Link Text](https://en.wikipedia.org/wiki/Hyperlink)
이미지 :
/// ![Alt Text](http://www.example.com/alt-image.jpg)
URL은 웹 URL ( "http : //"사용) 또는 절대 파일 경로 URL 일 수 있습니다 (상대적인 파일 경로가 작동하지 않는 것 같습니다).
링크와 이미지의 URL을 인라인 요소와 분리하여 모든 URL을 관리 가능한 한 곳에 보관할 수 있습니다.
/// A [link][1] an an ![image][2]
///
/// ...
///
/// [1]: http://www.example.com
/// [2]: http://www.example.com/image.jpg
마크 다운 형식 외에도 Xcode는 다른 마크 업 키워드를 인식하여 빠른 도움말에 눈에 띄게 표시됩니다. 이 마크 업 키워드는 대부분 형식을 취합니다 - <keyword>:
(예외는 parameter
콜론 앞의 매개 변수 이름도 포함). 키워드 자체는 대문자 / 소문자를 조합하여 작성할 수 있습니다.
다음 키워드는 도움말 뷰어, "설명"섹션 및 "선언"섹션 위에 눈에 잘 띄는 섹션으로 표시됩니다. 포함 된 경우 주석에 원하는 순서대로 포함 할 수 있지만 순서는 아래 표시된대로 고정됩니다.
마크 업 형식화 참조 의 기호 섹션 명령 섹션 에서 섹션 키워드 및 용도에 대한 전체 문서를 참조하십시오 .
/// - parameters:
/// - <#parameter name#>:
/// - <#parameter name#>:
/// - throws:
/// - returns:
또는 다음과 같이 각 매개 변수를 작성할 수 있습니다.
/// - parameter <#parameter name#>:
다음 키워드 목록은 도움말 뷰어의 "설명"섹션 본문에 굵게 표시됩니다 . "설명"섹션의 나머지 부분과 같이 작성 순서에 관계없이 나타납니다.
전체 목록 은 Erica Sadun 의이 훌륭한 블로그 기사 에서 해석되었습니다. 또한 마크 업 형식화 참조 의 기호 설명 필드 명령 섹션 에서 키워드 및 해당 용도의 전체 목록을 참조하십시오 .
기여 :
/// - author:
/// - authors:
/// - copyright:
/// - date:
유효성:
/// - since:
/// - version:
훈계 :
/// - attention:
/// - important:
/// - note:
/// - remark:
/// - warning:
개발 상태 :
/// - bug:
/// - todo:
/// - experiment:
구현 품질 :
/// - complexity:
기능적 의미론 :
/// - precondition:
/// - postcondition:
/// - requires:
/// - invariant:
상호 참조:
/// - seealso:
오픈 소스 명령 줄 유틸리티 인 Jazzy를 사용하여 인라인 문서에서 HTML 문서 (Apple 자체 문서를 모방하도록 설계됨)를 생성 할 수 있습니다 .
$ [sudo] gem install jazzy
$ jazzy
Running xcodebuild
Parsing ...
building site
jam out ♪♫ to your fresh new docs in `docs`
이 NSHipster 기사 에서 가져온 콘솔 예제
/// - todo: keyword
myOtherMethod(param1:)
확장 기능 참조 "
/// - Tag: otherMethod
하고 [otherMethod](x-source-tag://otherMethod)
. 자세한 내용은 내 답변을 참조하십시오 .
Xcode 6에서 신속한 코드를 문서화하는 데 도움이되는 몇 가지 사항이 있습니다. 매우 버그가 있고 콜론에 민감하지만 아무것도 아닌 것보다 낫습니다.
class Foo {
/// This method does things.
/// Here are the steps you should follow to use this method
///
/// 1. Prepare your thing
/// 2. Tell all your friends about the thing.
/// 3. Call this method to do the thing.
///
/// Here are some bullet points to remember
///
/// * Do it right
/// * Do it now
/// * Don't run with scissors (unless it's tuesday)
///
/// :param: name The name of the thing you want to do
/// :returns: a message telling you we did the thing
func doThing(name : String) -> String {
return "Did the \(name) thing";
}
}
위의 형식은 숫자 목록, 글 머리 기호, 매개 변수 및 리턴 값 문서와 같이 빠른 도움말에 표시됩니다.
이 중 어느 것도 문서화되어 있지 않습니다. 레이더를 제출하여 도움을 받으십시오.
///
설명 텍스트와 :param:
또는 :returns:
줄 사이에 빈 주석 ( ) 줄이 필요한 것 같습니다 . 이를 생략하면 XCode (작성시 6.1.1)가 함수 설명의 본문에 매개 변수 도움말을 포함시킵니다.
Xcode 8의 새로운 기능으로 다음 과 같은 방법을 선택할 수 있습니다
func foo(bar: Int) -> String { ... }
그런 다음 command
+ option
+를/
누르 거나 Xcode의 "편집기"메뉴에서 "구조"- "문서 추가"를 선택 하면 다음과 같은 주석 템플릿이 생성됩니다.
/// <#Description#>
///
/// - parameter bar: <#bar description#>
///
/// - returns: <#return value description#>
예. 기본 공통 (Obj-C와 동등한 스 니펫을 만들었습니다)
목표 -C :
/**
@brief <#Short description - what it is doing#>
@discussion <#Description#>
@param <#paramName#> <#Description#>.
@return <#dataType#> <#Description#>.
*/
빠른
/**
<#Short inline description - what it is doing#>
<#Description#>
:param: <#paramName#> <#Description#>.
:returns: <#dataType#> <#Description#>.
*/
Swift 만 사용하는 경우 Jazzy를 살펴볼 가치가 있습니다.
Jazzy는 아름다운 사과 스타일의 문서를 생성하는 데 도움을 줄 수 있습니다. 다음은 빠르게 사용하고 구성하는 방법에 대한 세부 사항이 포함 된 샘플 앱입니다.
AppleDoc 또는 Apple 자체의 HeaderDoc 을 잘 인식하지 않는 것이 좋습니다. 10.9 Mavericks 터미널 (headerdoc2html)에서 여전히 HeaderDoc 힌트를 찾을 수 있습니다
최신 " Xcode의 새로운 기능 "* (여전히 NDA 상태인지 확실하지 않음) 을 읽어 보는 것이 좋습니다. * 링크에는 Xcode 5.1 버전에 대한 정보도 포함되어 있습니다. HeaderDoc에 대한 정보도 포함되어 있습니다.
Xcode 5.0부터 Doxygen 및 HeaderDoc 구조적 주석이 지원됩니다.
/// This is what the method does.
등을 사용합니다 .