소스 편집기 확장 시도
WWDC 2016에서 Xcode Source Editor Extension, Xcode Editor Extension이 발표되었습니다.
Xcode용 App Extension을 만들 수 있을 것 같습니다.
Mac App StoreAlcatraz에도 게시할 수 있으므로 필요하지 않을 수 있습니다.
여기서 Xcode Source Editor Extension을 확인하면서 시도해 보겠습니다.
⚠️주의: 정보가 적기 때문에 추측이 포함될 수 있습니다.
화면 스냅샷 삭제됨
Xcode Source Editor Extension이란 무엇입니까?
이름과 같이 Source 편집기 부분을 확장한 것 같습니다.
더 광범위하게 확장하고 싶으면 Xcode 편집기 확장을 만들 수 있을까요?
그림으로 보면 이런 느낌인가요?
+----------------------+
| | +------------------------+
| Xcode |<--->| Xcode Editor Extension |
| | +------------------------+
| +---------------+ |
| | | | +-------------------------------+
| | Source Editor |<------->| Xcode Source Editor Extension |
| | | | +-------------------------------+
| +---------------+ |
| |
+----------------------+
사전 준비
macOS10.11은 다음 단계를 미리 수행해야 합니다.
sudo /usr/libexec/xpccachectl
항목 만들기
먼저 Cocoa 응용 프로그램 템플릿으로 프로젝트를 만듭니다.(Empty 템플릿을 사용하면 안 될 것 같음)
그런 다음
File > New > Target...
또는 +ボタン(Add a target)
에서 생성합니다.대상 (응용 프로그램 및 확장) 의 서명을 설정합니다.
위에서 Extension Schema를 선택하고 실행(Choose an app to run:)에서 Xcode8을 선택한 경우
편집기 메뉴에 항목이 추가됩니다.
런닝에 들어가기 전에 조작하면 동작이 잘 안 돼요.집행 후, 우리 숨을 한 번 쉬자.
생성된 파일 보기
대상을 만들면 다음과 같은 빠른 파일이 생성됩니다.
import Foundation
import XcodeKit
class SourceEditorExtension: NSObject, SourceEditorExtension {
func extensionDidFinishLaunching() {
// If your extension needs to do any work at launch, implement this optional method.
}
var commandDefinitions: [[XCSourceEditorCommandDefinitionKey: AnyObject]] {
// If your extension needs to return a collection of command definitions that differs from those in its Info.plist, implement this optional property getter.
return []
}
}
SourceEditorCommand.swiftimport Foundation
import XcodeKit
class SourceEditorCommand: NSObject, XCSourceEditorCommand {
func perform(with invocation: XCSourceEditorCommandInvocation, completionHandler: (NSError?) -> Void ) -> Void {
// Implement your command here, invoking the completion handler when done. Pass it nil on success, and an NSError on failure.
completionHandler(nil)
}
}
지금 봐야 할 건 4개면 돼.extensionDidFinishLaunching
commandDefinitions
info.plist에 적힌 정보를 사용한 것 같아서 정의할 필요가 없습니다.
perform
여기다 써서 처리하면 될 것 같은데.
XCSourceEditorCommandInvocation
자세한 내용은 정의로만 이동할 수 있습니다.
견본
XcodeSourceEditorExtension-Alignment - GitHub
선택한 대입 문장의 확장을 배열하는 데 사용됩니다.
정렬이 Xcode 편집기 메뉴에 추가됩니다.
사용 방법
Xcode에서 코드를 선택하고 정렬을 선택하십시오.
// before:
var hoge = "hoge"
var foo = "foo"
var awesome = ""
// after:
var hoge = "hoge"
var foo = "foo"
var awesome = ""
메모
Xcode-beta.앱에는 두 개의 Xcode Source Editor Extension이 있습니다.
이름
버튼
설명
XCDocumenterExtension.appex
⌥⌘/
문서 메모를 생성합니다.안에 VVDocumenter가 있는 것 같습니다.IDECacheDeleteAppExtension.appex
Derived Data를 삭제할 수 있습니까?Xcode Editor Extension인 것 같습니다.
참고 자료
Xcode
공식 소개 페이지, 편집기 Extensions의 프로젝트 Mac App Store에 편지를 보낼 수 있다고 적혀 있습니다.
Release Note
New in Xcode 8.0 beta - IDE > Source Editor Extensions
Known Issues in Xcode 8.0 beta - IDE > Source Editor Extensions
Using and Extending the Xcode Source Editor
WWDC 2016의 관련 세션입니다.
24:37부터 데모는 실제로 만들고 시도하는 곳을 볼 수 있다.
Reference
이 문제에 관하여(소스 편집기 확장 시도), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/_tid_/items/271c1973b3043f6c55cb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)