nshipster/swiftsyntaxhighlighter
A syntax highlighter for Swift code that uses
Requirements
- Swift 5.3+
Command-Line Usage
The swift-highlight executable can be run from the command line to highlight either a path to a source file or source code:
$ swift highlight 'print("Hello, world!")'
<pre class="highlight"><code><span class="keyword">let</span> <span class="variable">greeting</span> = <span class="string literal">"</span><span class="string literal">Hello, world!</span><span class="string literal">"</span></code></pre>Pass the --scheme pygments option to generate Pygments-compatible HTML:
$ swift highlight 'print("Hello, world!")' --scheme pygments
<pre class="highlight"><code><span class="n">print</span><span class="p">(</span><span class="p">"</span><span class="s2">Hello, world!</span><span class="p">"</span><span class="p">)</span></code></pre>swift-highlight also accepts arguments piped from standard input (stdin):
echo 'print("Hello, world!")' | swift highlight
<pre class="highlight"><code><span class="variable">print</span>(<span class="string literal">"</span><span class="string literal">Hello, world!</span><span class="string literal">"</span>)
</code></pre>Installation
Homebrew
Run the following command to install using homebrew:
$ brew install nshipster/formulae/swift-syntax-highlightManually
Run the following commands to build and install manually:
$ git clone https://github.com/NSHipster/SwiftSyntaxHighlighter.git
$ cd SwiftSyntaxHighlighter
$ make installCode Usage
SwiftSyntaxHighlighter provides type methods named highlight that take either source code as a String, a source file URL, or a SourceFileSyntax AST created by SwiftSyntax.
import SwiftSyntaxHighlighter
let code = """
print("Hello, world!")
"""
let html = try SwiftSyntaxHighlighter.highlight(source: source, using: Xcode.self)After running this code, html contains the following string:
<pre class="highlight"><code><span class="keyword">let</span> <span class="variable">greeting</span> = <span class="string literal">"</span><span class="string literal">Hello, world!</span><span class="string literal">"</span></code></pre>Installation
Swift Package Manager
Add the SwiftSyntaxHighlighter package to your target dependencies in Package.swift:
import PackageDescription
let package = Package(
name: "YourProject",
dependencies: [
.package(
url: "https://github.com/NSHipster/SwiftSyntaxHighlighter",
from: "1.2.4"
),
]
)Then run the swift build command to build your project.
Known Issues
- Xcode cannot run unit tests (<kbd>⌘</kbd><kbd>U</kbd>)
when opening the SwiftSyntaxHighlighter package directly, as opposed first to generating an Xcode project file with swift package generate-xcodeproj. (The reported error is: Library not loaded: @rpath/lib_InternalSwiftSyntaxParser.dylib). As a workaround, you can install the latest toolchain and enable it in "Xcode > Preferences > Components > Toolchains". Alternatively, you can run unit tests from the command line with swift test.
License
MIT
Contact
Mattt (@mattt)
[ci badge]: https://github.com/NSHipster/SwiftSyntaxHighlighter/workflows/CI/badge.svg [documentation badge]: https://github.com/NSHipster/SwiftSyntaxHighlighter/workflows/Documentation/badge.svg [documentation]: https://github.com/NSHipster/SwiftSyntaxHighlighter/wiki
Package Metadata
Repository: nshipster/swiftsyntaxhighlighter
Default branch: main
README: README.md