LEENote 一个Xcode注释小插件

网友投稿 849 2022-11-04

LEENote 一个Xcode注释小插件

LEENote 一个Xcode注释小插件

LEENote

注释小插件

Xcode中多行注释可以command + / 来注释代码

// override func viewDidLoad() {// super.viewDidLoad()//// }

由于不太喜欢每一行前面都//这样显得这个页面比较乱。像整个代码块还是使用多行注释/***/,这样看起来比较简洁。

/** 2017-11-29 16:06:16 override func viewDidLoad() { super.viewDidLoad() }*/

所以决定自己开发有一个小插件咯。先直接填代码:

class SourceEditorCommand: NSObject, XCSourceEditorCommand { func perform(with invocation: XCSourceEditorCommandInvocation, completionHandler: @escaping (Error?) -> Void ) -> Void { // Implement your command here, invoking the completion handler when done. Pass it nil on success, and an NSError on failure. // 第一个选中区域 let firstSelectObject: XCSourceTextRange = invocation.buffer.selections.firstObject as! XCSourceTextRange let buffer = invocation.buffer var start = firstSelectObject.start.line var end = firstSelectObject.end.line var startStr: String = buffer.lines[start] as! String var endStr: String = buffer.lines[end] as! String if start == end { } else { while checkSpace(str: endStr) { if end == start { break } end -= 1 endStr = buffer.lines[end] as! String } while checkSpace(str: startStr) { if end == start { break } start += 1 startStr = buffer.lines[start] as! String } } //如果是已经注释的就去掉注释 if startStr.hasPrefix("/**") && endStr.hasPrefix("*/") { buffer.lines.removeObject(at: end) buffer.lines.removeObject(at: start) completionHandler(nil) return } //自己多增加了个注释时间 let dateFormatter = DateFormatter() dateFormatter.locale = NSLocale(localeIdentifier: "zh_CN") as Locale! dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" let str = dateFormatter.string(from: NSDate() as Date) //代码块前后添加注释字符 buffer.lines.insert("*/", at: end + 1) buffer.lines.insert("/** \(str)", at: start) completionHandler(nil) } /// 是否为全是空格 func checkSpace(str: String) -> Bool { if (str.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines) as NSString).length == 0 { return true } return false } }

-后打开文件夹

将LeeNote拖到应用程序

在个人设置中扩展,将LeeNote插件打钩

然后打开Xcode,设置快捷键。接下来重启下Xcode.ok~

使用很简单咯

选个代码块,按下快捷键

/** 2017-11-29 16:20:02@property (strong, nonatomic) UIWindow *window;@property (strong, nonatomic) CLLocationManager *locationManager;*/

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:历史上的今天Flutter小APP
下一篇:@Transactional遇到try catch失效的问题
相关文章

 发表评论

暂时没有评论,来抢沙发吧~