We stand with Ukraine to help keep people safe. Join us
All Apps
Best AppsReviewsComparisonsHow-To
When you purchase through links on our site, we may earn an affiliate commission

CudaText for Mac

Code editor with syntax highlight for lot of languages.

Free
In English
4.8
Based on 7 user rates

CudaText overview

CudaText is a cross-platform text and code editor, extendible by Python addons.

Features:
  • Syntax highlight for many languages: C, C++, Java, JavaScript, HTML, CSS, PHP, Python, XML... in all, more than 200 syntaxes
  • Code folding
  • Code-tree structure
  • Multi-carets, multi-selections
  • Special auto-completion for HTML and CSS
  • Simple auto-completion for some lexers
  • Find/Replace with reg-ex
  • Split tab -- split view for 2/3/4/6 files
  • Plugins in Python language
  • Command palette
  • JSON config files
  • Customizable shortcuts
  • Can view picture files (JPEG/PNG/GIF/BMP/ICO)
  • Char map

For info on how to config, check out the website.

What’s new in version 1.130.0

Version 1.130.0:
Added:
  • HTML auto-completion: support HTML entities
  • HTML auto-completion: update tags/attribs lists
  • Much faster multi-carets editing, with 100+ carets and heavy lexer
  • Work on Undo/Redo
  • Undo: Caret movements were considered as actions that could be cancelled/repeated. It led to unneeded caret jumps. Now it looks more like undo/redo manages the content, not caret.
  • Undo: If last change was performed in area which isn't visible now, then undo/redo actions will highlight for a while the line and insert a short delay before the undo/redo action.
  • Undo: New options "undo_for_caret_jump" and "undo_pause".
  • Undo: Paste followed by other editing were considered as single action, so undo cancelled both the pasting and the editing at once. Now these actions are separated.
  • Undo: If pause (1500 msec) is passed between typing actions, undo them by steps.
  • Tab's context menu has new item "Pinned"; pinned tabs captions show prefix "!"
  • Command "set tab color..."
  • Command "reset tab color"
  • Command "toggle tab pinned state"
  • Better work of the feature which shows UI-tab titles like "test.txt * folder1" / "test.txt * folder2"
  • Better statusbar "message" cell: instead of hiding the text it dims it; floating tooltip for that cell shows 30 last messages
  • App updates 'enabled state' of toolbar buttons (visible on colorful toolbar theme)
Changed:
  • Multi-caret edition - undo all chars at once, like ST3.
Fixed:
  • Calculating width of some Unicode chars
View older CudaText versions

CudaText for Mac

Free
In English
Version 1.130.0
Write a detailed review about CudaText

Write your thoughts in our old-fashioned comment

MacUpdate Comment Policy. We strongly recommend leaving comments, however comments with abusive words, bullying, personal attacks of any type will be moderated.
4.8

(6 Reviews of CudaText)

  • Comments

  • User Ratings

jonathanharringdon
jonathanharringdon
May 31 2020
1.99.0.0
5.0
May 31 2020
5.0
Version: 1.99.0.0
CudaText definitely looks and feels like the open source community's answer to SublimeText. It's a programmer's editor as opposed to a fully-blown IDE (of which I am not a great fan, no least because they tend to be slow and bloated). CudaText sports all the usual buzzwords and high-level features a powerful programmer's editor should offer: full column editing, multiple carets, regular expressions throughout, code folding, multiple buffers and tabs, speed, fully configurable menus and keyboard shortcuts, keyboard macros, a fully-blown Python3-based plugin system (with hundreds of plugins ranging from easier stuff like VIM emulation or sessions to more complex things like spell-checking and project managing).
CudaText works on many platforms including MacOS (of course), Windows, various Linux distros, Solaris as well as Free-, Net- and OpenBSD. It supports text snippets, various line-endings, more character encodings than I care for, lexers and autocompletion for HTML, CSS and most programming languages (and a relatively simple way to create new lexers), UI theming, a minimap for overview and quickly jumping around. Basically, think of a feature and chances are CudaText already supports it (or there's at least a plugin which does).
But if not... the good news is that CudaText's developer, Alexey Torgashin (like AkelPad's creator a Russian) is willing to listen to suggestions and eager to add new features. In fact, he sometimes does so within a couple of days. He also releases new versions refreshingly fast: just check the release history on https://github.com/Alexey-T/CudaText/releases and lurk on the forum (http://synwrite.sourceforge.net/forums/index.php) for a week. In fact, the friendly forum is a great resource for all things CudaText especially for newcomers; another is the long and detailed wiki on https://wiki.freepascal.org/CudaText.
If CudaText is so great, are there any downsides? Yes, there are. Because it's such a beast of an editor, getting to know it and its many features is not something done in two minutes. More importantly, having it configured to one's liking is not trivial either. The complete configuration is stored in a set of simple .ini or .json files, so if need be literally everything can be changed by editing these files even if many elements of the configuration (for instance the UI theming, important parts of the lexer configuration and the keyboard shortcuts) can be changed from within nice GUI dialogs. However, a big chunk of the configuration has to be done by going through a not very sophisticated options dialog. I personally found it easier to forego this dialog by directly editing the main configuration file. On the positive side though, configuration files can be shared across platforms, so once you're done on one platform it'll behave exactly the same on any other supported platform.
Another weak point is the powerful plugin system: in itself this is a godsend because it allows anyone who knows a bit of Python to create a new (or adapt an existing) plugin. However, with hundreds of plugins available (see https://github.com/CudaText-addons) it's probably inevitable that the quality varies from very good to mediocre. I ran into problems with a couple of plugins but to the credit of Alexey and the CudaText forum community these were dealt with quickly.
If all this just sounds too good to be true... well, don't take my word for it! If you're a developer or otherwise need powerful cross-platform text editing, CudaText may be a near perfect fit. Just check it out yourself: http://uvviewsoft.com/cudatext/.
mr-qwerky
mr-qwerky
Jul 25 2017
1.11.0
5.0
Jul 25 2017
5.0
Version: 1.11.0
INTRODUCTION: CudaText is both an excellent general-purpose text editor, and an advanced, feature-rich programmer's editor, from the author of SynWrite, another programmer's editor, and shares most features with it. Both are free, open-source software, available from sourceforge. This review is based on CudaText 1.13.1.0 (2017-07-11) 64-bit Windows version. AUTHOR: As with most open-source software, there are multiple contributors to the project. The sourceforge CudaText home page lists some of them, including the primary developer mentioned in the first paragraph. The developers are very responsive to user feedback in their forums, and are open to users' suggestions. Replies are generally quick, and bug fixes and implementation of requested features is often amazingly fast. This doesn't mean that every feature requested will be implemented, but reasons are given for those which may not be. CROSS-PLATFORM: While SynWrite is a 32-bit only, Windows-only program developed in Delphi (Pascal), its successor CudaText is developed in Lazarus, an IDE for Free Pascal, and is available in both 32-bit and 64-bit versions, for Windows, Linux, and Mac. I have used only the 64-bit Windows version, with which this review is being written, but intend to make CudaText my default on Linux as well. INSTALLATION: Being portable, CudaText does not include an installer. Simply unzip the archive file into your installation directory. If Start Menu shortcuts are desired, they must be manually created. CudaText does not use the registry for anything other than to set file associations. It keeps all of its settings in sub-directories of the installation directory. Unzipping the archive will create a /settings_default/ directory which contains the default settings, and a /settings/ directory which is initially empty and where the user's settings will be stored. Since unzipping the archive does not place anything into the directory containing the user's settings, updating to a newer version can be done simply by unzipping the new version right over top of the original installation directory. My preferred method is to unzip the new version to a temporary directory, and then move the needed files to the installation directory. This safeguards against overwriting the user's settings, should the zip file happen to contain any files in that directory, which has been known to happen with some testing versions. As usual, of course, the user should always maintain backups. FEATURES: CudaText sports an abundance of features, including projects, sessions, syntax highlighting, code folding, code tree, multi-carets, multi-selections, auto-completion, snippets, search/replace with regex, macros, tabbed interface, tab groups, split-views, minimap, micromap, bookmarks, many HTML/CSS features, customizable key mappings, themes, and so much more. DISPLAY: In addition to the main client area where actual editing takes place, the program window supports a menu bar; a toolbar; a tab bar; a ruler; a status bar; the gutter which may display line numbers, bookmarks, and a folding bar; a sidebar (similar to a vertical toolbar); left-side panel which may display a project panel, code tree, or tab list; a right-side panel (actually part of the edit area) which may display the minimap and micromap; and a bottom panel which may display the console, output, validation, and search results. The client area may have multiple tabs, each containing an individual file, and each tab may be split either vertically or horizontally to give two independent views of that file. In addition, the client area may be split into up to six individual groups which may be arranged horizontally and vertically. Each group may contain its own set of tabs, and again each of those tabs may be split. Tabs may be freely dragged between groups. Each tab, and each tab split-view, may independently toggle on/off its own ruler line, line numbers, folding bar, minimap and micromap, and those settings will remain with the tab if it is dragged to another group. CONFIGURATION: CudaText is incredibly customizable. The sidebar may be turned on or off; the side and bottom panels, the gutter which contains the line numbers among other things, the toolbar, tab bar, ruler line, staus bar, etc. may all be toggled on and off. Themes may be applied. Custom colours (including background) and fonts may be set for the various elements, and the elements' sizes adjusted as, for example, setting the height of the tab bar, ruler line, status bar, etc. In addition, the spacing between text lines in the client area may be set, right down to the pixel. These settings allow the entire UI to be configured to perfectly fit a given amount of screen real-estate. The individual panels on the status bar (line/column numbers, tab size, lexer, etc.) may be turned on or off, their order re-arranged, and their contents set according to user preference. Even the main menu may be fully customized, with new menus and items being added, and existing menus and their items added to, renamed, re-ordered, or removed. All of the hotkeys (keyboard shortcuts) may be remapped, and the new hotkeys will also be displayed in the menus. And much more. All of this customization comes at a price. Here CudaText, unlike its older brother SynWrite, has taken a Linux-like approach, with all settings contained in standard text files; in this case in .json format. To alter a setting, the user must edit the configuration file. This will present no problem for any experienced programmer or Linux user, but may be daunting for first-time CudaText users or neophyte computer users. But again like Linux, this issue is somewhat alleviated by graphical front-ends, dialogs implemented as plugins, to actually modify the configuration files for the user. CudaText may be used right out-of-the-box, but the best user experience will be realized if one takes the time to customize it to suit his own preferences. PLUGINS: As much as CudaText is customizable, it is just as extensible by way of plugins. Plugins are an excellent way to add additional features which needn't be part of the core code. In fact, much of CudaText's existing functionality is implemented this way. Of course there remain certain types of operations (primarily live-editing functions), which don't work well as plugins, and are better implemented as part of the main code. More about this later. The plugin manager allows the user to install, update, configure or remove plugins, to view an individual plugin's readme file or homepage, or to install a plugin directly from Github. The update function will scan the configured repositories, and show the user a list of installed plugins, with each one's installed date and version, along with the latest available date and version. Each plugin with a newer version available will be automatically selected, allowing the user to easily update them all at once, or he may manually choose which ones to update. There are a large number of plugins available from a group of very capable authors, including general features, lexers, linters, snippets, themes, and translations. The user may also develop his own extensions. Most plugins are written in Python. SYNTAX HIGHLIGHTING: CudaText shares its lexer engine with SynWrite, and it is one of the most powerful I have seen, sporting capabilities far beyond the syntax-highlighting abilities found in many other editors. According to the CudaText home page, more than 180 lexers are currently available, and that number is growing. If the lexer you require has not yet been created, it is easy enough to create simple lexers. Developing with the more advanced features is, of course, more challenging, but nothing that an experienced programmer can't handle. The rub, though, is that while CudaText uses, and fully supports the same lexers as SynWrite, CudaText itself has no method to actually create a lexer. What is necessary is to install SynWrite, which has a full lexer-creation tool, and create the required lexer in SynWrite, which can then be used by CudaText. WRITING: While it is an excellent general-purpose text editor, there can be little doubt that CudaText is primarily a programmer's editor, developed by programmers for programmers. A cursory glance at its features will show just how well suited it is to that task. Yet the developers have recognized that fact, and are now making a conscious effort to extend its abilities to accommodate more creative writing tasks as well. This is a welcome trend, which I hope we will see continue. Just recently, we have seen abilities added to navigate, format, and justify paragraphs. Paragraphs may now be formatted with first-line indent, first-line hanging, as block or as quoted-block, and may be justified left, right, center, or full. And paragraph-specific navigation is now available, with commands to jump to the beginning of, end of, and to previous and next paragraphs. Currently these functions are implemented via a plugin, and are on-demand only, rather than 'live.' This means that each time a formatted paragraph is edited, it must be re-formatted by pressing a hotkey, rather than being automatically re-formatted as editing takes place. CudaText supports the usual full-screen mode, which causes the program to cover the entire screen, hiding the title bar and the Windows task bar. But it also allows the user to configure which program elements should also be hidden (if they are turned on), including the sidebar, toolbar, tab bar, status bar, left-side panel, bottom panel, and the gutter with all of its elements. In addition, it also has a distraction-free mode, which automatically hides all of those, leaving only the menu bar, ruler (if turned on), minimap/micromap (if turned on), and client area covering the entire screen, allowing the writer to concentrate entirely upon his text. SPELLING: Earlier versions of SynWrite had excellent built-in, live spell-checking, which I made great use of. In my opinion it was one of SynWrite's best features. Later versions have moved the spell-checker to a plugin, and live checking is no longer available, though on-demand checking is still fine. Unfortunately, 64-bit versions of CudaText have no spell-checking at all. And even on the 32-bit versions, the plugin-implemented, on-demand only spell-checking only checks text within comments and strings. Now, comment and string spell-checking is exactly what a programmer needs (that includes 64-bit programmers, of course), but falls far short of the needs of writers, or of even a general-purpose text editor. This is a huge short-coming, and I sincerely hope that the developers will consider reinstating the excellent earlier SynWrite live spell-checking behaviour for CudaText. PERFORMANCE: CudaText was very fast on every task I put to it; no delays were experienced at all. This comes as no surprise, given the up-to-date hardware it was run on. CONCLUSION: As a general-purpose text editor, CudaText more than meets the mark, and as a programmer's editor it really shines. It is also on the way to becoming a very good writer's editor. All, of course, with the exception of the missing spell-checker, which is its only real weakness, and one which it is hoped will be speedily rectified. Given its feature set, its incredible configuration ability, its cross-platform availability so that the user can use all of his customizations on multiple platforms, and its price (free), one would be hard-pressed to find a better solution. Highly recommended.
leblanc
leblanc
Jul 6 2017
1.11.0
5.0
Jul 6 2017
5.0
Version: 1.11.0
CudaText - A Powerful, Configurable and Extensible Multi-Platform Programmers' Editor CudaText is the brainchild of Alexey-T from http://uvviewsoft.com/ which is also the home of the very (very!) powerful SynWrite editor. Due to issues with Delphi (what SynWrite was written in) he switched his focus to CudaText. What makes CudaText stand out is a combination of qualities that I find to be very valuable. I'll admit my biases first: I have been programming for three decades and over, and I have developed certain habits - most of them I would like to believe are good, but some of them are definitely very pesky and selfish, but so what? I spend 10-12 hours a day in front of an editor; should I compromise? No. My first and most important requirement is to have complete control over the interface - font types and sizes for every element, color themes, and various user interface options. I want things a certain way, and then I want the very same things out of my way. CT is a very configurable editor - it allows turning on and off any aspect of the interface, by way of the menu system and also through several very well documented JSON files. Support for languages: out of the box CT comes with chroma-coding lexers supporting a very long list of languages. Being a contract programmer and a solutions provider I go from PHP to Powershell, from AutoHotkey to XML, from C++ to Perl. CT handles it all with great aplomb. My most favorite feature (and something that any programmer who deals with other peoples code will find useful): a vertical guide that moves with the caret and combined with the current line indicator creates a cross-hair effect. This thin vertical guide is one of the most useful features possible: it shows if blocks of code are in their correct place and if the logic is flowing correctly. In addition, CT has thin block-level guides showing the beginning and end points of code blocks (of course, these points can also be folded), it allows controlling the shape and blink rate of the cursor (including a non-blinking cursor) and for me these features put together spell coding Nirvana. CT allows splitting the editing window into multiple horizontal and vertical (combined) areas. You can freely drag and drop tabs between these areas. Slowness is never an issue and your multi-file editing session flows without any interruptions. CT supports multi caret editing, a huge time-saver you'll find in the more "modern" editors. Say you want to add a string to multiple lines - usually you would do some search-and-replace operation. No need! With multi caret editing when you activate the feature you click on the start point and move the caret up or down. When you start typing the same text goes into all lines. After somewhat of a wait we got an excellent add-ons manager. CT has (so far) five categories of add-ons: Plugins, Linters, Translations, Snippets, and Lexers. This is where you can get a clear taste for the constantly evolving nature of CT: Alexey-T himself and several contributors are expanding the CT ecosystem and adding features at a constant pace. CT has an API for Python-based extensions. Be it as it may that Python is my least favorite language in the world, it's pretty easy to figure it out and roll your own extensions. CT has a very helpful forum, even if some of the comments are in Russian. Case in point: I sat down and wrote a quick-and-dirty Pixel to REM converter (CSS & HTML people know what I'm talking about). I submitted it to the CT forum. Alexey-T promptly fixed my (admittedly: imperfect) code and added it to the CT repository. This was fun! First, I got to contribute even if in the tiniest way, second (and much more important) I got to see the proper way to write a CT extension. I am working on a few (nothing too fancy mind you) and it will be my pleasure to contribute those too to the CT community. Wrapping up, I would like to look at CT from a wider perspective. I have mentioned the word "modern" in quotes throughout my comments. There is a new generation of editors out there (a group that CT belongs to) which have IDE-like language-specific features. How does CT compare to these products? To answer I will use Sublime, VS Code and Atom for comparison. Sublime: I have to admit that Sublime is a darling of an editor, with a very large support ecosystem (extensions and themes). However, Sublime is rusting: updates come perhaps twice a year if we are lucky. There is nothing quite as disconcerting as using a software that gets no updates. Has it been abandoned? - you ask yourself, am I going to be left out in the cold? Sublime is a smooth, intelligent editor but in stasis, whereas CT is moving onward at a brisk pace. My money is on CT catching up. VS Code: VSC, even though a sophisticated editor with very creative features, is very (very!) severely lacking in some of the most basic features. Meanwhile, I dare anyone to leave a comment or an enhancement request for the VSC guys. They are a nice bunch indeed, but they are involved in the sophisticated features of the editor, not in the meat-and-potatoes features of editing. So if you don't have a PhD in Computer Science those guys are of no use; and even if they do decide to comment on your bug/feature entry, you won't understand what they are talking about. CT on the other hand has figured out most (admittedly not all!) of the basics and is advancing forward in the race for features. Atom: In my personal experience I have found Atom to be unusable, and I have tried, believe me. Atom is always presented as "sexy" in computer magazines: screenshots invariably use a dark background and piercing bright colors for the source-code text, which is a big attention grabber. That is all fun and good in a screenshot but when you install the thing you figure out that [a] it has a mind of its own and cannot be controlled, [b] many extensions do not work, and [c] many extensions fail to even install, throwing very colorful (pink and firebrick I believe) error messages. So, despite all my repeated and sincere attempts to use and enjoy Atom, I find it to be a severely frustrating and ultimately unusable mess. In summary: CT is a smart editor, it is flexible, and it is constantly improving. It is a multi-platform tool (I'll admit I have no experience with that) and it is easy to configure and extend it. It requires no installation and can be run from a USB stick. Granted, it is not as mature as SynWrite, Alexey-T's other editor, but it is slowly outshining it in several areas. I enjoy CT a great deal and find it to be one of the more capable editors in the market. Best wishes and gratitude to Alexey-T for this excellent and essential programmers' tool. Thank you for reading this review.
editorialdog
editorialdog
May 20 2017
1.8.5
5.0
May 20 2017
5.0
Version: 1.8.5
I'm a screenwriter, essayist and poet and I've been looking for an editor that would allow me to write in all of these forms. I prefer markup languages over WYSIWYG simply because I don't want to be distracted what WYSISYG GUI editors offer. (The bloat and kitchen sink philosophy of MS Word makes gives me night-horrors. Not to mention, who hasn't fought tooth and knife with a what-you-see-is-what-you-get editor because it sounded more like a threat than a promise? No, I don't want that word italicized you _useless waste of a handful of sand_--the emphasis stops **here**.) I've used LaTeX for years for prose but it is not ideal for screenwriting or poetry. Both are too fiddly if you're formatting while writing (and don't have an assistant to code your formatting for you later). Fountain is the best markup language screenwriting and works well for poetry and prose. Presently the Highland app is buggy and not ideal (also going up in price). For these reasons, I've been exploring different text editing solutions over the last few months. I waded into the Emacs and Spacemacs ecosystem because I was told there was a large community. There is. But they are also a huge distraction for a writer who just wants to write. The vanilla versions of those programmes are also pretty unusable. And kludgey. I suspect that part of the reason people don't shut up about their Emacs configurations is what economists call the _sunk cost fallacy_. "I've put years into my .emacs file and just another year or two and it'll be perfect!" From there, I found Sublime Text, which is pretty snappy but expensive. And the best plugin for Fountain is basically abandon-ware, glitchy and incomplete. Finally, I have found CudaText and I've been very impressed. It is simple and gets the job done. The developer is very responsive to issues and working hard to improve the programme. That alone is gold. So many app developers (Ulysses, iA Writer, Byword) say they'll keep something in mind for a future upgrade but then their upgrades are slow and for silly cosmetic things. The CudaText developer gets new versions out in short time cycles. (For example, the developer is working on Pandoc integration so you can convert your documents to and from different formats.) If you're looking for a modern text editor that offers distraction-free writing and you don't want to be distracted setting up the editor, this is one of the best editors I've come across. Give it another 15 minutes and it may well be the best. After a lot of comparison, _it's what I use_,. 'Nuff said.
captbill279
captbill279
Jan 24 2016
1.2.16
5.0
Jan 24 2016
5.0
Version: 1.2.16
Excellent all purpose text editor with major potentials! CudaText/SynWrite is truly the best kept secret in the text editor world. It employs the excellent SynEdit component library (Lazarus/Delphi) and exploits all of it's features. The SynEdit components are just too complex except for the most accomplished programmers. With SynWrite you have a good 'front end' to the complexities of the SynEdit. Once you learn to build a lexer, using the tools provided, you really can start to understand the SynEdit.
jonathanharringdon
jonathanharringdon
May 31 2020
5.0
May 31 2020
5.0
Version: null
mr-qwerky
mr-qwerky
Jul 25 2017
5.0
Jul 25 2017
5.0
Version: null
leblanc
leblanc
Jul 6 2017
5.0
Jul 6 2017
5.0
Version: null
editorialdog
editorialdog
May 20 2017
5.0
May 20 2017
5.0
Version: null
captbill279
captbill279
Jan 24 2016
5.0
Jan 24 2016
5.0
Version: null
Andreas
Andreas
Dec 16 2015
4.0
Dec 16 2015
4.0
Version: null
UserUV
UserUV
Aug 24 2015
4.5
Aug 24 2015
4.5
Version: null