Notepad

授权协议 MIT License
开发语言 JavaScript
所属分类 程序开发、 正则表达式工具
软件类型 开源软件
地区 不详
投 递 者 昝卓
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Version Carthage compatible

Usage

let notepad = Notepad(frame: view.bounds, themeFile: "one-dark")
view.addSubview(notepad)

Notepad is just like any other UITextView, but you need to use the convenience initializer in order to use the themes. To create a new theme, copy one of the existing themes and edit the JSON.

Check out the Xcode project for an example. For full documentation read the code.

Extending an Existing Text View with Notepad Features

If you cannot work with the Notepad subclass directly for some reason, you can set up an existing UITextView or NSTextView on your own.

For iOS, you have to initialize all TextKit components yourself. Take the following as a blueprint where you can swap in custom objects:

class ViewController: UIViewController {
    var textView: UITextView!
    
    override func viewDidLoad() {
        super.viewDidLoad()

        let containerSize = CGSize(width: self.view.bounds.width, height: CGFloat.greatestFiniteMagnitude)
        let container = NSTextContainer(size: containerSize)
        container.widthTracksTextView = true

        let layoutManager = NSLayoutManager()
        layoutManager.addTextContainer(container)

        let storage = Storage()
        let theme = Theme("one-dark")
        storage.theme = theme
        storage.addLayoutManager(layoutManager)

        let editor = UITextView(frame: self.view.bounds, textContainer: container)
        editor.backgroundColor = theme.backgroundColor
        editor.tintColor = theme.tintColor
        editor.autoresizingMask = [.flexibleWidth, .flexibleHeight]
    }
}

And for macOS:

class ViewController: NSViewController {
    @IBOutlet var textView: NSTextView!
    let storage = Storage()

    override func viewDidLoad() {
        super.viewDidLoad()

        let theme = Theme("one-dark")
        storage.theme = theme
        textView.backgroundColor = theme.backgroundColor
        textView.insertionPointColor = theme.tintColor
        textView.layoutManager?.replaceTextStorage(storage)
    }
}

Themes

Take a look at all of the themes and swatches when choosing the theme for your Notepad, or as inspiration for a new one.

You can find all of the raw themes in the themes folder, and the file names are case-sensitive.

Custom Regex

Using regex, you can match custom patterns in your Notepad editor by passing a regex attribute in your theme. For example, one that highlights Twitter handles in a teal color:

"handle": {
  "regex": "[@@][a-zA-Z0-9_]{1,20}",
  "color": "#78ddd5"
}

Installation

Copy the source from the Notepad folder to your project, or add Notepad to your Podfile if you're using CocoaPods.

 相关资料
  • 问题内容: 有没有办法重新缩进一段代码?我正在寻找类似于Eclipse(自动格式化/缩进)中的+ +的东西。 要清楚一点 我已经知道如何 在 Notepad ++ 之外 格式化XML (如上所述,Eclipse可以正常工作),因此我不需要一堆链接到其他XML格式化工具。 我专门处理XML和HTML。 理想情况下,键绑定与Eclipse中的键绑定一样方便,因此我不必中断我的工作流程。 我已经知道Np

  • 问题内容: 我一直在尝试将Notepad 设置为一个小的Java环境,主要是为了学习Java,因为我很难获得一个简单的程序来与NetBeans一起使用,不幸的是,有关设置Notepad 来调用Java代码的所有建议均不起作用。 我猜notepad ++发生了变化,或者Java开发工具包已经进行了大规模修改,因为我使用的所有示例都会导致错误,即使错误的余地很小。 首先,我找到了这个网站:http :

  • 问题内容: DDL变得特别难看。记事本是否可以使用SQL自动缩进的任何选项?我已经尝试在Eclipse中做到这一点,但是代码对自动缩进没有反应。 问题答案: 是的,有一个用于Notepad ++的免费/开源T-SQL格式化插件,称为“穷人的T- SQL格式化程序”。它在NPP“插件管理器”插件列表中可用(偶尔会自动更新一次),也可以从此处手动下载/安装:http : //www.architect

  • 本文向大家介绍Android利用Intent实现记事本功能(NotePad),包括了Android利用Intent实现记事本功能(NotePad)的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Intent如何实现一个简单的记事本功能的演示过程,供大家参考,具体内容如下 1、运行截图 单击右上角【…】会弹出【添加】菜单项,长按某条记录会弹出快捷菜单【删除】项。 2、主要设计步骤 (1

  • 导致错误: Traceback(最近一次调用最后一次):文件C:\Program Files(x86)\wing IDE 101 5.0\src\debug\tserver_sandbox.py,第3行,在传递文件c:\Python27\Lib\subprocess.py,第172行,在调用返回Popen(*popenargs,**kwargs). etc()文件c:\Python27\Lib\s

  • 在运行java by Notepad++脚本之前,我在Win 7 Ultimate中仅使用文件名(例如和java程序)运行java by。 在使用Notepad++脚本并将Java更新到版本后,我只能通过Notepad++运行Java。我得到了 即使是我也可以在命令行中运行它 我只是好奇可能会有什么问题。

  • 谁能解释一下如何使用notepad++根据XSD验证xml文件。“XML Tools”插件下拉列表中没有提供指定XSD文件的选项。在plugins子目录中正确安装XML插件,并将3个DLL复制到notepad++EXE子目录。其他XML“验证”特性也可以工作,但无法针对XSD进行验证。

  • 我正在接收一个zip文件的内容(从一个API)作为一个base64编码的字符串。 如果我将该字符串粘贴到Notepad++中并执行 插件>MIME工具>Base64解码 生成类似的内容,但某些字符的解码方式不同(因此成为无效的zip文件)。其他方法抛出无效的URI错误。 如何在JavaScript中再现Notepad++行为?