| Bluefish | |
|---|---|
| Developer | Olivier Sessink |
| Initial release | 1999; 26 years ago (1999) |
| Stable release | 2.2.17[1] |
| Repository | |
| Written in | C |
| Operating system | Cross-platform (POSIX) |
| Type | Text editor |
| License | GPL-3.0-or-later |
| Website | bluefish |
Bluefish is afree and open-source software and an advancedsource code editor with a variety of tools for programming and website development. It supports editingsource code such asC,JavaScript,[2]Java,PHP,[3][4]Python,[5][6] and as well asmarkup languages such asHTML,[7]YAML, andXML.[8][9] It is available for many platforms, includingLinux,[10]macOS,[11] andWindows,[12][13] and can be used via integration withGNOME or run as a stand-alone application. Designed as a compromise between plain text editors and full programmingIDEs,[14][15] Bluefish is lightweight, fast and easy to learn, while providing many IDE features.[16][17] 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 theGNU General Public License.
Compared to an IDE Bluefish lacks functionality like an integrateddebugger[18] or aWYSIWYG web design component.[19][20]
Bluefish's features includesyntax highlighting[21] andauto-completion for 47 different markup and code languages (including Mediawiki syntax[22]), customizable via an XML language definition format.[23] It furthermore featurescode folding, auto-recovery,[16] upload/download functionality (on systems whereGVfs is available), a code-aware spell-checker,[24][16] a Unicode character browser, project support,[25] code navigation and bookmarks.[26] It also supportsregular expressions and multi-file search and replace.[20] It has amultiple document interface[27] that can quickly load large codebases or websites,[28][25] and features full screen editing.[18]
For web development it has many toolbars with specific dialogs andwizards to automatically insert the correct HTML tags[21] in addition to autocompletion for all tags and their attributes[20] together withZencoding/emmet[29][19]
Bluefish is extensible via plugins and external tools and scripts.[25][16][30] Many scripts come preconfigured, including statical code analysis, and syntax and markup checks for different markup and programming languages such as lint or weblint.[31] Also a simple marco-like feature called "custom menu" helps to speed up repeating actions.[32] A large set of macro's for PHP and HTML come preconfigured.[33]
Bluefish was started by Chris Mazuc and Olivier Sessink in 1998 to facilitate web development professionals on Linux desktop platforms.[34] Bluefish was at the time one of the only web development focused editors on the Linux.[35][36] Linux, due to theLAMP stack (first introduced in 1998[37]), was becoming the most popular web hosting platform.[38] Bluefish was quickly part of the major Linux distributions, such asDebian Potato (released in 2000),[39] Knoppix 2.1[40][41] and the firstFedora release.[42]
The development of Bluefish was initially inspired by two other editors: the configurable syntax scanning and highlighting was inspired by theNEdit and the user interface was inspired byHomesite 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.[43] Finally the nameBluefish was chosen after a logo (a child's drawing of a blue fish) was proposed on its mailing list.[34]
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, aLaTeX editor.[44] The 2.0.x branch[45] was a big rewrite, changing to theGTK 2 GtkTextView widget and a new syntax scanning engine based on adeterministic finite automaton.[46] The 2.2.x branch,[47] which is the current stable branch, supports both GTK 2 and GTK 3.
Although Bluefish is not an official part of theGNOME desktop environment, it is often considered so because it uses the GTK toolkit and integrates well in GNOME.[48]
Bluefish is hosted onSourceForge, and was one of the early projects to join.[49] InitiallyCVS was used for code version control, later moving toSVN.
Bluefish is mostly written inC[50] and uses the cross-platformGTK library for itsGUI widgets.[51] Markup and programming language support is defined in XML files that are loaded withLibxml2. The optional plugins requirelibenchant,python andlibgucharmap.[52] Bluefish is built with standard configuration and compilation tools such asAutomake,Autoconf,LLVM andGCC. Windows binaries are built withMinGW. On OS X there are ports onFink[53] andMacports,[54] but the official binary is built using the Gtk-OSX-Integration[55]
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 readstandard input and return their results viastandard output can be configured in the preferences panel.[25] Various scripts for JavaScript, JSON, CSS, and HTML formatting are included in the Bluefish distribution.
{{cite book}}: CS1 maint: multiple names: authors list (link)Books or extensive websites on web development that recommend and/or cover the use of Bluefish:
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:
{{cite book}}: CS1 maint: multiple names: authors list (link)