Git Product home page Git Product logo

cupcake's Introduction

Cupcake Editor ๐Ÿง

pypi issues open GitHub closed pull requests

The Cupcake Editor is an embeddable text editor with autocompletions and the fully featured code editor from Biscuit. Scroll down to see some of the supported features.

image

Cupcake has syntax highlighting support for over 500+ programming languages, autocompletions, minimap, and many editing features included. Written in Python using the Tkinter library.

Installing

pip install cupcake-editor

Note You need python 3.10 or above.

To integrate the editor into your app, here's a quick start!

import tkinter as tk
from cupcake import Editor, Languages

root = tk.Tk()
root.minsize(800, 600)

e = Editor(root, language=Languages.TYPESCRIPT)
e.pack(expand=1, fill=tk.BOTH)

e.content.insert("end", """
// check this out
import "./global.css";
import App from './App.svelte';

const app = new App({
	target: document.body
});

export default app;
""")

root.mainloop()

See these complete samples for instructions on Diff viewer, Image viewer and Theming.

Note You can run the examples from the project directory like python examples/basic.py

The Editor Component

Picks the right editor based on the path, path2, diff values passed. Supports showing diff, images, text files. If no arguments are passed, empty text editor is opened.

Attributes

option type description field type
master tk.Widget The parent tkinter widget mandatory
path str Absolute path to the file to be opened optional
path2 str Absolute path to be opened in right hand side (if diff) optional
diff bool Whether to be opened in diffviewer optional
language cupcake.Language This is given priority while picking suitable highlighter. If not passed, guesses from file extension. optional
dark_mode bool Sets the editor theme to cupcake dark if True, or cupcake light by default. This is ignored if custom config_file path is passed optional
config_file str Absolute path to the custom config (TOML) file, uses theme defaults if not passed. see examples optional
showpath bool Whether to show the breadcrumbs for editor or not optional
font str/tk.font.Font Font used in line numbers, text editor, autocomplete. defaults to Consolas(11) optional
uifont str/tk.font.Font Font used for other UI components (breadcrumbs, trees) optional
preview_file_callback function/lambda Called when files in breadcrumbs-pathview are single-clicked. MUST take an argument (path) optional
open_file_callback function/lambda Called when files in breadcrumbs-pathview are double clicked. MUST take an argument (path) optional

Methods

function description
Editor.save If the content is editable writes to the specified path.
Editor.focus Gives focus to the content.

Additionally, All the tk.Text widget methods are available under Editor.content (eg. Editor.content.insert, Editor.content.get)

Features

Syntax Highlighting & Minimap (over 500+ languages supported)

Auto completions (words + keywords)

other features

  • Auto Indentation
  • Diff Viewer
  • Minimap
  • Breadcrumbs and Pathview tree
  • Image Viewer
  • Fully Customizable and themable configurations
  • Language Detection from File Extensions
  • Default dark/light mode themes

Contributing

Your contributions and support are greatly appreciated! ๐Ÿงก See contributing for further details such as coding guidelines and tools used.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.