Speare
Version 1.2.344

The ultra light code editor.

Speare is a small and friendly code editor. It was originally developed to provide a native scripting language debugging environment that seamlessly integrated with C and C++, you can use it to edit source code files, programming and debugging. Speare designed to make programming feels light, simple and free. Speare not only has an efficient code navigation and call routines tracing ability but also has flexibility to extend it to support special developing requirements. Speare includes an ultra lightweight debugging environment for C, C++, Ruby, mruby, Lua, Python, PHP, Perl and Tcl, and give people complete freedom to control and customise the debugging environment for a new programming language..

What's new

1. Highlighting files that has no extension name by recognise it's Shebang, i.e. the first line of the text file.
2. Fast editing arbitrary files in parallel text views. "Parallel Editing" allows user stick one file in the bottom view and switch different files in the top view.

It's free!

It's not free now!

Speare has really good features, such as parallel editing, instant diff, high performance searching and symbol definition parsing. But after a long time, still no people kindly feed back any issue report or feature request, they just use it freely but don't willing to give respect to other's works. I changed my idea from "Free Forever" to "You should pay for good stuff". The app is really good but they made it down and down, that's made me angry, that's why Speare becomes a paid app from free app. Sorry.





If you can't open the link above, please launch App Store and found Speare by searching. Please kindly donate the author by purchasing the pro version or other app developed by the author, your donation will drive the author to continually improve it, or please kindly recommend this app on your blog or rate this app so that helping other people can more easily find it.

Features

Screenshot


Screenshot of SQLite source code "Parallel Editing" in Speare code editor.

Fast edit several files separately

Just drag the file one by one from Finder and drop into workspace, edit them and then right-click to "Remove All".

Fast edit several files in big folder

Just drag the folder into workspace never mind how big it is and then edit several files never mind what the programming language they were written, fast editing them with the "Auto-completion" feature provided by Speare code editor.

Code editor on iPad

If you want to edit source code files on iPad, or review code on iPad, please refer another app developed by me, iCodeEditor, an integrated code editor for iPad. Sorry, it's not free.

Code editor and IDE on macOS

Terminal based on text editors such as GNU Emacs and Vim, although they are very cool, but their limitations are also obvious, the elephant in the room. As a programmer, so many text editor I've used in the past years, such as the bulky cargos, Visual Studio Code, Atom, Android Studio, Eclipse, ActiveState Komodo, Xcode, NetBeans, Eclipse, and some light cargos, e.g Textadept, CotEditor and TextMate. I never like desktop applications that built with NodeJS, React and Electron, Eclipse and Java or .NET and C# based big stuffs. Speare code editor is a small, free and friendly code editor which implements the most important missing features in common code editors, e.g bookmark management, parallel editing, instant diff and fast locate code lines between multiple files, code block live parsing etc.

No. Name Size No. Name Size
1Speare 1.2.56 5.6MB 7 Visual Studio Code (bare system) 1.36.1 211MB
2TextMate 1.5.7 23.3MB 8 ActiveState Komodo 11.1 334MB
3Textadept 10.4 35MB 9 Atom 1.38.2 558MB
4CotEditor 3.3 47MB 10 Android Studio 3.1 1.37GB
5Lazarus (without FreePascal compiler and source packages) 2.0.8200.9MB 11Eclipse IDE 4.12 400MB ~ 5GB
6ZeroBraneStudio 6.0 602.1MB 12Xcode 10.0 12GB

The technology choices to make a code editor and IDE on macOS

No.NameProsCons
1Vim/EmacsFav of big communityUser experience is not so friendly
2HTML5 + ElectronMature code base open sourcedLow performance with huge run-time
3QtMature cross-platform GUI kitBest for Linux, Windows but not suitable for macOS GUI app
4GTK+Mature cross-platform GUI frameworkBest for Linux but not suitable for macOS GUI app
5Tcl/TkRapid GUI app development kitLack low level native OS support features
6Java SwingRapid development, mature cross-platform GUI kitLow performance with huge run-time
7C# + .NETFast implementing GUI appSuitable for Windows but not suitable for macOS GUI app, Mono required (6.10 362.3MB!).
8Native CocoaMature, reliable, high performanceBest frameworks to build macOS app

Speare code editor was developing based on the native pure Cocoa frameworks with leveraging several C library results a very small footprint, high performance, small memory and storage runtime consuming, and ultra small distribution. Only 1.1MB executable!

Why not big software?

Waste time to maintain, wast big storage and runtime memory, waste energy, waste time to upload and download. It's waste people's life! Every desktop developer should known one thing, the embedded system developers sometime even fighting for one byte of storage in some situation. They never think about memory and storage like embedded system developers, so more and more big monster there. In today's software industry, Unix philosophy has been throw away completely!

They make software as big as possible, as complex as possible, but I believe in the opposite philosophy.

Why another code editor and IDE on macOS?

Although there are so many code editor and IDE available on macOS, but Speare code editor has its own unique characteristics:

  1. Lightweight. Most of the code editors on macOS are very heavy, bulky! But Speare code editor is really really ultra light. Only 6.2MB!
  2. High Performance. Code editor developed with Javascript or Java have inherent defects that can't keep high performance when handle thousands of files for big project, such as VSCode, Atom, and NetBeans, Eclipse. Speare code editor can handle very big project, for very big C & C++ projects, Java projects, Node projects, and very big game projects! Easily!
  3. Cost. Most of the good code editors or IDE on macOS are not free and even very expensive, but Speare code editor is free! Of course, you can kindly purchase the pro version to donate some money to the author, but that is not mandatory.
  4. Freedom. Feels light, simple and free. High performance code editor, flexibility to extend it to support special developing requirements and easily add a new programming language, most of these IDE on macOS can't give you such ability and freedom, can't give you smoothly coding experience when mixing multiple programming languages for big software projects. But Speare code editor give you very flexible control to extend it to add syntax highlighting for a special document and debugging environment for a new programming language without paying.

About Apple App Store

Eat food by your own hand but not the feeds they provides to your front.
1. Speare don't like some app (such as XXEdit) thickly marked as "Top Free Apps" and "Editor's Choice" but has hidden purchases in it, Speare has not any hidden purchases to trap people's money.
2. Speare don't like some app (such as XXRunner) thickly marked as "Top Paid Apps" but it's not up to that rank.

Code browser, call routines tracing and code analysis

Speare code editor helps end user to understand an existing code base by powerful code browser and call routines tracing functions. Speare code editor parses source code files and maintains the database of symbol definitions instantly while user editing, and presents useful contextual information to user automatically. It also use persistent bookmarks to remember key locations within functions or classes and their references. End user can quickly navigate function calls and callers and find references to variable, function or class instantly.

Productive helps to fast find editing points

1. Use "Recent List" to fast find recent opened and edited files.
2. Use "Functions" to fast find the location of function definitions.
3. Use "Bookmarks" to fast find the bookmarks placed for editing locations.
4. Search symbol references and fast find the location of the reference points.
5. Use parallel editing to fast edit files.
6. Drag file or folder in the workspace to re-arrange their positions.
7. Search items in the workspace.
8. Use "Jump To Definition" to find the reference points, and click "Go Back" to return to jump point.
9. Use "Changes" to fast find file changes.

Fast Editing

Speare developed as an ultra light code editor that completely leverage "Keyboard shortcuts" for fast editing. Keyboard shortcuts instead of "moving mouse and click" can notably improve code editing experience. Real programmer use keyboard shortcuts as a habit constantly. Real programmer use and write command line applications as a habit constantly. Keyboard shortcuts can help people fast move focus between workspace and text editor, and fast switch between running apps such as Debug Server, Fossil, Web browser and Speare.

Debug Mode

Speare seamlessly support debugging C, C++, Ruby, mruby, Lua, Python, PHP, Perl and Tcl scripts, more info please refer here: → Speare debugger architecture.

Speare Keyboard Shortcuts

Please refer the table: speare_shortcuts.pdf

Syntax Checking and Run Code Instantly

a. Press shortcut key "Command + R".
b. Click menu: "Command" → "Syntax Checking & Run".

Crafting software as small as possible. → Why C is the returned king of programming languages.

Add a New Colour Scheme

     colour scheme boilerplate:
# 1. file must be UTF-8 encoding
# 2. line starts with character '#' is comment
# 3. colour string must be a valid hex value of HTML colour
#    and starts with character '#' and a ':'(colon) following the keyword
# 4. file extension must be 'txt'
# 5. line ending must be '\n'

text: #abb2bf
background: #282c34
current line: #dcc6e0
selection: #61aeee
invisibles: #c0c0c0
cursor: #d08770
attributes: #98c379
variables: #d19a66
comments: #5c6370
strings: #98c379
keywords: #c678dd
tags: #e06c75
predefined: #e6c07b
blocks: #a3be8c
tree view background: #282c34
tree view text: #abb2bf
number: #abb2bf

Please save the above content as a plain text file, e.g schemeX.txt, and directly edit the colour values to fit a new style, and then put it under the following directory:
~/Library/Application Scripts/com.sevenuc.spearepro/colorschemes/
Please create the directory if it does not exists.

Code Formatter/Code Beautifier

Supported languages:
a. C, C++, Objective‑C, C#, Java (built-in support).
b. Ruby, Lua, Python, Perl, PHP, Tcl, Swift, JavaScript, Shell scripts, Dart, Go and Rust.
(located in the formatters directory, and requires some configuration to let them correctly working)

Location of formatters:
~/Library/Application Scripts/com.sevenuc.SpeareHelper/formatters/
Please create the directory if it does not exists.

Ensure the formatters can be correctly working, you should take a look at above directory, the built-in formatters:
js.sh: check Node.js installed and can be accessed from command line.
go.sh: check Go installed and can be accessed from command line.
php.sh: check PHP installed and can be accessed from command line.
rust.sh: check Rust and rustfmt installed and can be accessed from command line.
tcl.sh: check Tcl installed and can be accessed from command line.
dart.sh: check Dart and dartfmt installed and can be accessed from command line.

Note:
a. Python code formatter alternative: https://github.com/psf/black
b. JavaScript and TypeScript code formatter alternative: https://github.com/prettier/prettier, it also can format CSS, SCSS, Markdown, HTML, JSON, YAML, JSX, Flow, Less, Angular, Vue, and GraphQL.
c. The selected code block is complete or has logical begin and end border then the formatter can generate better output.

Integrated development environment

Speare code editor can easily integrate building tools, code analysis tools and continue deploy tools. You can run different tasks in Speare code editor instantly, such as automatic compile (run makefile, CMake, Ant tasks etc), building and packing, or run static code analysis tools (source code analyzer, such as PC-Lint, clang-analyzer, PHPLint, OCLint, SwiftLint, and PMD etc), unit testing tools, memory leak detection tools such as Valgrind, performance analysis tools, code style check tools, and any other tasks. Speare code editor provides you complete freedom to extend the editor to satisfy special requirements of your development environment.

Programming Languages and Document Types

The built-in parsers of Speare code editor can parse tons of common document formats and programming languages.

AMPL ASM ASP AWK Ada ActionScript Active4D AnsiblePlaybook Ant Apache Applescript Asciidoc AutoIt Autoconf Automake Basic Batch Beta Bibtex C C# C++ CMake CPrePro CSS Scss CUDA Clojure Cobol CoffeeScript ColdFusion Csound Ctags D DTS DbusIntrospect Diff DosBatch PowerShell Dtd Dylan Shell SQL Eiffel Elixir Elm Erlang eZ Publish F-Script Falcon Flex Forth Fortran FreeFem++ Fypp GEDCOM Gdbinit Glade Go Gradle GraphViz Groovy Haskell HTML Haxe Header IDL ITcl Iniconf Inko JSP Java JavaFX JavaProperties JavaScript Json Julia Kotlin Kuin LSL LaTeX LdScript Lilypond Lisp EmacsLisp Logtalk Lua M4 MEL Makefile Man Markdown MATLAB Maven2 MetaPost Metaslang Moose MySQL Myrddin Nsis NASL NEURON Nemerle Objective-C Octave Ocaml Ox PDF PHP Parrot Pascal Passwd Perl Perl6 Pig Plist Pod PostScript Prolog Processing Protobuf Puppet PuppetManifest Python PythonLoggingConfig PowerShell QemuHX QtMoc R R/S-PLUS RHTML RSpec RelaxNG Rexx Robot Racket RpmSpec Rst Ruby mruby Rust Sml Slang, SGML SML SQL Scala Scheme Sedona Shell Slang Smalltalk Snippets Stata SuperCollider SVG Swift SystemTap SystemdUnit TTCN Tcl Tcl/Tk Tex TorqueScript TypeScript Udo VB VB.NET VHDL Vera Verilog SystemVerilog Vim WSDL WindRes XML XSD Xquery Xslt Yacc YAML YumRepo Zephir

a.The most popular document formarts: Plist, JSON, Markdown, Yaml, SVG, Protobuf, HTML, CSS, SCSS, Man, Asciidoc, Tex, Bibtex, Dtd, Pod, XML, Xslt, Xquery, XSD, Glade, RelaxNG and DbusIntrospect etc.
b. Configure files: Autoconf, Automake, Make, M4, Makefile, Vim, Kconfig, LdScript, AnsiblePlaybook, Varlink, WSDL, RSpec, QtMoc, WindRes, and Gradle, Ant and Maven2 etc.


Crafting software as small as possible!

Support

If your special programming language, compiler, interpreter or special document type requires Spear syntax highlighting or debugging support, please drop us a message.

Please kindly report your feature request or issue on OSDN or Github:
 https://osdn.net/projects/speare.
https://github.com/chengdu/Speare.