Bluefish (software)
Template:Short description Template:Use dmy dates
Bluefish is a free and open-source software and an advanced source code editor with a variety of tools for programming and website development. It supports editing source code such as C, JavaScript,<ref>Template:Cite book</ref> Java, PHP,<ref name="PracticalPHP">Template:Cite book</ref><ref name="easyoracle">Template:Cite book</ref> Python,<ref name="pythonforbeginners">Template:Cite book</ref><ref>Template:Cite book</ref> and as well as markup languages such as HTML,<ref>Template:Cite book</ref> YAML, and XML.<ref>Template:Cite book</ref><ref>Template:Cite web</ref> It is available for many platforms, including Linux,<ref>Template:Cite book</ref> macOS,<ref>Template:Cite web</ref> and Windows,<ref>Template:Cite web</ref><ref>Template:Cite web</ref> and can be used via integration with GNOME or run as a stand-alone application. Designed as a compromise between plain text editors and full programming IDEs,<ref>Template:Cite web</ref><ref name="thegeeksclub">Template:Cite web</ref> Bluefish is lightweight, fast and easy to learn, while providing many IDE features.<ref name="zdnet5tools">Template:Cite web</ref><ref>Template:Cite web</ref> Bluefish was one of the first source code editors on the Linux desktop. It has been translated into 17 languages. The source code is available under the GNU General Public License.
Features
Compared to an IDE Bluefish lacks functionality like an integrated debugger<ref name="bestcodeeditors">Template:Cite web</ref> or a WYSIWYG web design component.<ref name="troubleshooters"/><ref name="blre1">Template:Cite web</ref>
Bluefish's features include syntax highlighting<ref name="jumpstart">Template:Cite book</ref> and auto-completion for 47 different markup and code languages (including Mediawiki syntax<ref>Wikipedia:Text editor support § Bluefish</ref>), customizable via an XML language definition format.<ref>Template:Cite web</ref> It furthermore features code folding, auto-recovery,<ref name="zdnet5tools" /> upload/download functionality (on systems where GVfs is available), a code-aware spell-checker,<ref name="openforyou">Template:Cite news</ref><ref name="zdnet5tools" /> a Unicode character browser, project support,<ref name="lifeofageekadmin"/> code navigation and bookmarks.<ref>Template:Cite web</ref> It also supports regular expressions and multi-file search and replace.<ref name="blre1"/> It has a multiple document interface<ref>Template:Cite magazine</ref> that can quickly load large codebases or websites,<ref name="htmlcenter">Template:Cite web</ref><ref name="lifeofageekadmin">Template:Cite web</ref> and features full screen editing.<ref name="bestcodeeditors"/>
For web development it has many toolbars with specific dialogs and wizards to automatically insert the correct HTML tags<ref name="jumpstart"/> in addition to autocompletion for all tags and their attributes<ref name="blre1"/> together with Zencoding/emmet<ref>Template:Cite mailing list</ref><ref name="troubleshooters">Template:Cite web</ref>
Bluefish is extensible via plugins and external tools and scripts.<ref name="lifeofageekadmin"/><ref name="zdnet5tools" /><ref name="bestpgpeditors">Template:Cite web</ref> Many scripts come preconfigured, including statical code analysis, and syntax and markup checks for different markup and programming languages such as lint or weblint.<ref name="linuxandubuntu">Template:Cite web</ref> Also a simple marco-like feature called "custom menu" helps to speed up repeating actions.<ref name="gradelinuxeditorsa">Template:Cite web</ref> A large set of macro's for PHP and HTML come preconfigured.<ref>Template:Cite web</ref>
History
Bluefish was started by Chris Mazuc and Olivier Sessink in 1998 to facilitate web development professionals on Linux desktop platforms.<ref name="usalug">Template:Cite web</ref> Bluefish was at the time one of the only web development focused editors on the Linux.<ref>Template:Cite web</ref><ref name="enki-editor">Template:Cite web</ref> Linux, due to the LAMP stack (first introduced in 1998<ref>Template:Cite web</ref>), was becoming the most popular web hosting platform.<ref>Template:Cite web</ref> Bluefish was quickly part of the major Linux distributions, such as Debian Potato (released in 2000),<ref>Template:Cite web</ref> Knoppix 2.1<ref>Template:Cite mailing list</ref><ref>Template:Cite web</ref> and the first Fedora release.<ref>Template:Cite web</ref>
The development of Bluefish was initially inspired by two other editors: the configurable syntax scanning and highlighting was inspired by the NEdit and the user interface was inspired by Homesite which was only available on Windows. Bluefish was originally called THTML editor, which was considered too cryptic; then ProSite, which was abandoned to avoid clashes with web-development companies already using that name.<ref name="bluefishhomepage">Template:Cite web</ref> Finally the name Bluefish was chosen after a logo (a child's drawing of a blue fish) was proposed on its mailing list.<ref name="usalug"/>
The 1.0.x branch was released in 2005, and included a new logo. In 2005 a Bluefish fork of 1.3 was made to create Winefish, a LaTeX editor.<ref>Template:Cite web</ref> The 2.0.x branch<ref>Template:Cite mailing list</ref> was a big rewrite, changing to the GTK 2 GtkTextView widget and a new syntax scanning engine based on a deterministic finite automaton.<ref>Template:Cite web</ref> The 2.2.x branch,<ref>Template:Cite mailing list</ref> which is the current stable branch, supports both GTK 2 and GTK 3.
Although Bluefish is not an official part of the GNOME desktop environment, it is often considered so because it uses the GTK toolkit and integrates well in GNOME.<ref>Template:Cite web</ref>
Source code and development
Bluefish is hosted on SourceForge, and was one of the early projects to join.<ref>Template:Cite web</ref> Initially CVS was used for code version control, later moving to SVN.
Bluefish is mostly written in C<ref name="openhub">Template:Cite web</ref> and uses the cross-platform GTK library for its GUI widgets.<ref>Template:Cite web</ref> Markup and programming language support is defined in XML files that are loaded with Libxml2. The optional plugins require libenchant, python and libgucharmap.<ref>Template:Cite web</ref> Bluefish is built with standard configuration and compilation tools such as Automake, Autoconf, LLVM and GCC. Windows binaries are built with MinGW. On OS X there are ports on Fink<ref>Template:Cite web</ref> and Macports,<ref>Template:Cite web</ref> but the official binary is built using the Gtk-OSX-Integration<ref>Template:Cite web</ref>
Bluefish has a plugin API in C that has been used mainly to separate non-maintained parts (such as the infobrowser-plugin) from maintained parts. Bluefish also supports loosely coupled plugins: external scripts that read standard input and return their results via standard output can be configured in the preferences panel.<ref name="lifeofageekadmin"/> Various scripts for JavaScript, JSON, CSS, and HTML formatting are included in the Bluefish distribution.
See also
- Comparison of HTML editors
- Comparison of integrated development environments
- List of HTML editors
- List of PHP editors
- List of text editors
References
Further reading
Books or extensive websites on web development that recommend and/or cover the use of Bluefish:
- Template:Cite web
- Template:Cite book
- Template:Cite book
- Template:Cite book
- Template:Cite book
- Template:Cite book
- Template:Cite book
- Template:Cite book
- Template:Cite book
- Template:Cite book
Books on Python that recommend and/or cover the use of Bluefish:
Books on PHP that recommend and/or cover the use of Bluefish:
Generic books on development on the Linux desktop that recommend and/or cover the use of Bluefish:
External links
- Text editors that use GTK
- Free software programmed in C
- Software using the GNU General Public License
- Software that uses GTK
- Free text editors
- Free integrated development environments
- GNOME Applications
- HTML editors
- Free HTML editors
- Web development software
- Linux integrated development environments
- Linux text editors
- MacOS text editors