Swift MIT

CodeEditTextView

A text editor specialized for displaying and editing code documents. Written in pure Swift.

C

CodeEditApp

Dernière activité 20 sept. 2026
CodeEditApp/CodeEditTextView

184

étoiles

58

forks

14

issues ouvertes

appkitcoretextmacosswifttext-editor

Ce README est souvent en anglais.

CodeEditTextView

A text editor specialized for displaying and editing code documents. Features include basic text editing, extremely fast initial layout, support for handling large documents, customization options for code documents.

GitHub release Github Tests GitHub Repo stars GitHub forks Discord Badge

Important

This package contains a text view suitable for replacing NSTextView in some, specific cases. If you want a text view that can handle things like: right-to-left text, custom layout elements, or feature parity with the system text view, consider using STTextView or NSTextView. The TextView exported by this library is designed to lay out documents made up of lines of text. It also does not attempt to reason about the contents of the document. If you're looking to edit source code (indentation, syntax highlighting) consider using the parent library CodeEditSourceEditor.

Documentation

This package is fully documented here.

Usage

This package exports a primary TextView class. The TextView class is an NSView subclass that can be embedded in a scroll view or used standalone. It parses and renders lines of a document and handles mouse and keyboard events for text editing. It also renders styled strings for use cases like syntax highlighting.

import CodeEditTextView
import AppKit

/// # ViewController
/// 
/// An example view controller for displaying a text view embedded in a scroll view.
class ViewController: NSViewController, TextViewDelegate {
    private var scrollView: NSScrollView!
    private var textView: TextView!
    
    var text: String = "func helloWorld() {\n\tprint(\"hello world\")\n}"
    var font: NSFont!
    var textColor: NSColor!
    
    override func loadView() {
		textView = TextView(
            string: text,
            font: font,
            textColor: textColor,
            lineHeightMultiplier: 1.0,
            wrapLines: true,
            isEditable: true,
            isSelectable: true,
            letterSpacing: 1.0,
            delegate: self
        )
        textView.translatesAutoresizingMaskIntoConstraints = false

        scrollView = NSScrollView()
        scrollView.translatesAutoresizingMaskIntoConstraints = false
        scrollView.hasVerticalScroller = true
        scrollView.hasHorizontalScroller = true
        scrollView.documentView = textView
        self.view = scrollView
		NSLayoutConstraint.activate([
            scrollView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
            scrollView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
            scrollView.topAnchor.constraint(equalTo: view.topAnchor),
            scrollView.bottomAnchor.constraint(equalTo: view.bottomAnchor)
        ])

        textView.updateFrameIfNeeded()
    }
}

License

Licensed under the MIT license.

Dependencies

Special thanks to Matt Massicotte for the great work he's done!

Package Source Author
TextStory GitHub Matt Massicotte
swift-collections GitHub Apple

        CodeEdit        

CodeEditSourceEditor

     CodeEditKit     

CodeEditLanguages

    CodeEdit CLI    

Projets similaires

📝 CodeEdit App for macOS – Elevate your code editing experience. Open source, free forever.

Swiftappappkitapple
CCodeEditApp
23,1 k étoiles1,2 k

Lightweight Plain Text Editor for macOS

Swiftcocoacoteditoreditor
Ccoteditor
8,5 k étoiles538

SwiftUI code editor view for iOS, visionOS, and macOS

Swifteditoriosmacos
Mmchakravarty
917 étoiles97