使用JavaScript开发Xcode扩展

Code Friend是Xcode扩展,它为XcodeKit提供JavaScript接口。 用户可以快速开发Xcode Extensions。

官方网站:https://qvcodefriend.github.io/
Mac App Store安装地址:https://itunes.apple.com/cn/app/code-friend/id1441249580


从Xcode 8开始,Apple为我们的开发人员提供了XcodeKit,用于开发Xcode Extensions。 但这是如此简单且容易出错。 直到现在,Xcode 10仍然是如此简单。 但是它工作稳定。 许多开发人员创建了大量扩展,例如Awesome本机Xcode扩展https://github.com/theswiftdev/awesome-xcode-extensions

Code Friend是Xcode扩展之一。 它使用JavaScriptCore公开XcodeKit。

Code Friend是一个macOS App,其中包括一个扩展程序,即Xcode Source Editor。

您可以通过在Mac App Store中搜索“代码朋友”来找到它。

如何启用

因为macOS用于扩展的安全性。 您需要从“系统偏好设置->扩展-> Xcode源编辑器-> Code Friend扩展”中启用它。

内建功能

启用Code Friend后,打开任何Xcode项目,单击菜单“编辑器”。 您将在底部看到“代码朋友”。

例如,选择单词“ everettjf”,单击“转换为ASCII文本(style1)”。 然后,您将在“ everettjf”行下看到ASCII文本形式。

与其他菜单相同。 您可以对多行​​进行排序。 您可以通过单击“关于”菜单打开官方站点。

到目前为止,任何Xcode Extension都可以完成上述操作。

但是关键是,上面任何菜单的实现都是JavaScript引擎。 您可以在此处找到源代码:https://github.com/qvcodefriend/qvcodefriend.github.io/tree/master/packages/builtin

如何安装和使用DLC Pack 1

DLC Pack 1是扩展软件包。

打开Code Friend macOS App

单击左上角的“ AddPack”按钮,然后单击右上角的“ Try DLC Pack1”按钮,DLC Pack 1的安装地址(https://qvcodefriend.github.io/packages/dlc/)为填充到文本框中。

单击按钮“添加”后,开始下载过程。 如果幸运的话,您将看到消息All Succeed :)

点击“关闭”按钮。

然后,您将在左侧列表视图中看到新的项目“ Code Friend DLC Pack 1”。 单击该项目后,包装信息将显示在右视图中。

现在,您可以关闭Code Friend的桌面应用程序。

Xcode需要完全退出。

再次,打开任何Xcode项目,您将看到DLC Pack 1中的菜单。

仅此而已。 接下来,您将学习如何开发软件包(如DLC Pack 1)。

市场

与DLC Pack 1相似,任何人都可以为Code Friend创建一个程序包。 其他人可以从一个URL地址安装它。

这样我们就可以从世界各地收集网址:https://qvcodefriend.github.io/marketplace/。 到目前为止只有1个包裹package

您也可以从桌面应用程序的右上方访问市场。

现在该为Code Friend创建一个新的程序包了。 不久,您需要2个步骤:

1.按照https://qvcodefriend.github.io/develop/开发一个包。
2.将软件包分发到网站(例如GitHub Pages)。

接下来,让我们开始创建一个包并分发到GitHub Pages。

  1. 首先,创建一个组织。

访问https://github.com/organizations/new或单击下面的菜单:

这里的组织名称为“ MyCodeFriendPackage”,您需要使用其他名称。

2.其次,创建GitHub Pages。

访问https://github.com/qvcodefriend/helloworld,单击fork并选择不久前创建的组织。

分叉完成后,将存储库重命名为:mycodefriendpackage.github.io(所有小写字母都需要)

重命名完成后,点击设置底部的“选择主题”。

选择任何主题,然后单击“选择主题”,现在您将在GitHub Pages部分下得到提示:https://mycodefriendpackage.github.io/

3.编码

克隆仓库https://github.com/MyCodeFriendPackage/mycodefriendpackage.github.io

  git clone git@github.com:MyCodeFriendPackage / mycodefriendpackage.github.io.git 

打开仓库的目录,您将看到helloworld的目录

helloworld / manifest.json文件的内容如下:

每个菜单ID都将指向一个菜单目录。

菜单目录hello必须有一个文件entry.js 。 变量entry包含菜单所需的所有JavaScript文件。


var entry = [
'main.js'
];

main.js包含一个onMenuClicked函数,该函数返回包含result字段的字典。

  var onMenuClicked = function(identifier){ 
invocation.appendLines(['Hello World']);
返回{
'结果':true
};
};

现在是时候调用api了。

有2个变量:“调用”和“系统”。 访问https://qvcodefriend.github.io/develop/了解详细信息。


#调用
## getter,setter
1)[getter] invocation.contentUTI
2)[getter] invocation.tabWidth
3)[getter] invocation.indentationWidth
4)[getter]调用。usesTabsForIndentation
5)[getter]调用.selectionExist
6)[getter,setter]调用。选择
7)[getter]调用.firstSelection
8)[getter] invocation.selectionStrings
9)[getter]调用.selectionLines
10)[getter,setter] invocation.completeBuffer
11)[getter,setter] invocation.lines
12)[getter] invocation.lineCount ##方法
1)invocation.insertLinesAtIndex(ArrayOfString,Integer)
2)invocation.appendLines(ArrayOfString)
3)invocation.removeLinesFromTo(Integer,Integer)
4)invocation.assignLineAtIndex(String,Integer)#系统
## 方法
1)system.log(字符串)
2)system.openURL(String)
```

4.完成

现在,helloworld软件包的地址为https://mycodefriendpackage.github.io/helloworld/

您可以在Xcode中看到菜单“ Hello world”。

https://github.com/qvcodefriend/qvcodefriend.github.io/tree/master/packages

Code Friend只是MVP版本。 当XcodeKit向我们的开发人员提供更多功能时,Code Friend将为我们提供更多功能。

享受🙂

Interesting Posts