diff --git a/HACKING b/HACKING index 6edeb89d..120a49b2 100644 --- a/HACKING +++ b/HACKING @@ -72,7 +72,7 @@ the existing elements stay in place - this will keep the ABI stable. .. warning:: - Some structs like GeanyKeyGroup and GeanyCallback cannot be + Some structs like GeanyKeyGroupInfo and GeanyCallback cannot be appended to without breaking the ABI because they are used to declare structs by plugins, not just for accessing struct members through a pointer. @@ -82,7 +82,7 @@ even the API can change. An ABI change just means that all plugins will not load and they must be rebuilt. An API change means that some plugins might not build correctly. -When reordering or changing existing elements of structs that are +If you're reordering or changing existing elements of structs that are used as part of the plugin API, you should increment GEANY_ABI_VERSION in plugindata.h. This is usually not needed if you're just appending fields to structs. The GEANY_API_VERSION value should be incremented @@ -90,6 +90,15 @@ for any changes to the plugin API, including appending elements. If you're in any doubt when making changes to plugin API code, just ask us. +Plugin API/ABI design +--------------------- +You should not make plugins rely on the size of a struct. This means: + +* Don't let plugins allocate any structs (stack or heap). +* Don't let plugins index any arrays of structs. +* Don't add any array fields to structs in case we want to change the + array size later. + Glade ----- Use the code generation features of Glade instead of editing interface.c @@ -192,17 +201,7 @@ check to see if those features have been written in other projects first. * Add GEANY_FILETYPES_FOO to filetypes.h. * Initialize GEANY_FILETYPES_FOO in init_builtin_filetypes() of filetypes.c. -* Rebuild Geany. -* From your geany/ directory, run:: - - src/geany --generate-data-files - -(The src/ prefix may be different, depending on where the binary is -generated.) -This will update data/filetype_extensions.conf. Note that -you need GEANY_DEBUG to be defined when building Geany for the ---generate-data-files argument to work - this is always defined in the -SVN version. Alternatively, edit the file by hand. +* Update data/filetype_extensions.conf. filetypes.* configuration file ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/NEWS b/NEWS index ef872d49..acbb0747 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,96 @@ +Geany 0.18 (August 16, 2009) + + General: + * Fix scrolling horizontally after finding a search match with the + search bar or Find Next/Previous which is off-screen. + * Remove relative/untidy path elements from filenames when opening + documents (#2823998). + * Create initial template files with proper platform-specific line + ending characters. + * Improve inserting of comment templates like File header or licence + notices. + + Interface: + * Add 'Show Paths' documents list popup item. + * Add filetypes.common to 'Configuration Files' menu. + * Implement a graphical toolbar editor. + * Add 'Build' toolbar button to the default layout. + * Add 'Replace' toolbar button (closes #2798225). + * Use a more Tango like icon for 'Save All' (by Jesse Mayes, thanks). + * Add a popup menu for the keybinding list in the preferences dialog + to easily expand and collapse all groups. + + Keybindings: + * Implement Most-Recently-Used document switching when pressing + 'Switch to last used document' keybinding (Ctrl-Tab). + * Add 'Mark All' keybinding (Ctrl-Shift-M). + * Add 'Reflow lines/block' keybinding, (Ctrl-J; thanks to + Eugene Arshinov). + * Make the Scintilla keybindings 'Delete to end of line' and + 'Go to end of display line' configurable. + * Switching notebook tabs now works for the currently used notebook + widget instead of always using the documents notebook. + + Editor: + * Fix a redraw when documents were first drawn uncolourised. + * Delay highlighting matching braces by 100ms to speed up scrolling + with the arrow keys. + * Support 'tab indents, space aligns' style when indenting (#2789109). + * Add 'Autocomplete all words in document' pref; also used when forcing + autocompletion and there's no symbol names to show. + * Add 'Drop rest of word on completion' pref. + * Update Scintilla to version 1.79. + * Improve displaying and reshowing of calltips. + + Syntax highlighting: + * Reload color schemes via Tools menu (thanks to Eugene Arshinov). + * Implement named styles support for filetypes.* using a + filetypes.common [named_styles] section; used as + "style=named_style,bold". (See the manual for details). + * Allow style definitions with missing fields to use the + filetypes.common default style's fields. + * Make C-like filetype styles use named styles & default background + color. (Anyone who wants to likewise update any other filetype's + styles, please let us know ;-)). + * Allow indentation of wrapped lines (see style 'line_wrap_indent'). + * Add new styles 'line_height' and 'marker_mark'. + + Filetypes: + * Add Markdown filetype (thanks to Jon Strait). + * Highlight D WYSIWYG backtick `strings` and r"strings" (#1895745). + * Minor improvements for filetypes: Fortran, Haxe, HTML, Lua, + Matlab, Pascal, Python, Tcl. + + Tags: + * Read custom system global tags files from $prefix/share/geany/tags + (#2778923). + * Autocomplete scoped fields like struct members when typing '.' (and + also '->' or '::' in C/C++) if the language's tag parser supports it. + * Save field tags for C/C++ when generating a global tags file (you may + want to regenerate your tag files). + * Parse Python calltips. + * Show relative paths in Diff filename tags. + * Group reStructuredText symbol list items by scope level. + + Plugin API: + * Add geanyplugin.h single include. + * Add plugin_signal_connect() for connecting plugin signals at + runtime and also for connecting to any GObject signal. + * Add documents_foreach(), filetypes[], documents[], utils_strdupa() + and various foreach_type() macros. + * Make GeanyDocument::file_type always be non-NULL. + + Windows: + * Fix quoting the build command string on Windows (closes #2791769). + * Fix LaTeX view commands on Windows (part of #2807688). + * Expand system environment variables (%variableName%) on Windows when + running Build commands. + + Internationalisation: + * Added translations: lb, sl, pt_PT + * Updated translations: ca, cs, de, en_GB, fi, fr, ja, pt_BR, ru, tr + + Geany 0.17 (May 02, 2009) Bug fixes: @@ -299,7 +392,7 @@ Geany 0.14 (April 19, 2008) * Add translucency settings to filetypes.common for semi-transparency. * Add HTML parser to get h1, h2, h3 symbols as well as link anchors and JavaScript functions (fixes #1896068). - * Update Javascript, TCL and Assembler parser. + * Update Javascript, Tcl and Assembler parser. Interface: * When closing a tab when using left-to-right tabs, focus the next @@ -613,7 +706,7 @@ Geany 0.11 (May 21, 2007) Tab. * Add MimeType associatiations for: C++ header, Pascal, Perl, Python, httpd-PHP and XML files (thanks to Iñaki Rodriguez). - * Add brace indenting support for Perl and TCL. + * Add brace indenting support for Perl and Tcl. * Make backspace unindent when using spaces for indentation. * Wrap notebook pages when switching tabs. * Speed up loading multiple C-like files slightly. diff --git a/configure.in b/configure.in index fa196be5..e921a456 100644 --- a/configure.in +++ b/configure.in @@ -2,7 +2,7 @@ dnl Process this file with autoconf to produce a configure script. dnl $Id$ AC_INIT(configure.in) -AM_INIT_AUTOMAKE(geany, 0.18) +AM_INIT_AUTOMAKE(geany, 0.19) AM_CONFIG_HEADER(config.h) diff --git a/data/filetype_extensions.conf b/data/filetype_extensions.conf index 03c63eaf..f35e5df7 100644 --- a/data/filetype_extensions.conf +++ b/data/filetype_extensions.conf @@ -1,13 +1,11 @@ -#*** This file generated by: geany --generate-data-files *** - -#Filetype extension configuration file for Geany -#Insert as many items as you want, seperate them with a ";". -#See Geany's main documentation for details. +# Filetype extension configuration file for Geany +# Insert as many items as you want, seperate them with a ";". +# See Geany's main documentation for details. [Extensions] ASM=*.asm; Ada=*.adb;*.ads; C=*.c;*.h; -C++=*.cpp;*.cxx;*.c++;*.cc;*.h;*.hpp;*.hxx;*.h++;*.hh;*.C; +C++=*.cpp;*.cxx;*.c++;*.cc;*.h;*.hpp;*.hxx;*.h++;*.hh;*.C;*.H; C#=*.cs; CAML=*.ml;*.mli; D=*.d;*.di; diff --git a/data/filetypes.latex b/data/filetypes.latex index 0e26d011..e3056633 100644 --- a/data/filetypes.latex +++ b/data/filetypes.latex @@ -43,3 +43,17 @@ compiler=latex --file-line-error-style "%f" linker=pdflatex --file-line-error-style "%f" run_cmd=xdvi "%f" run_cmd2=xpdf "%f" + +[build-menu] +FT_00_LB=LaTeX -> _DVI +FT_00_CM=latex --file-line-error-style "%f" +FT_00_BD=false +FT_01_LB=LaTeX -> _PDF +FT_01_CM=pdflatex --file-line-error-style "%f" +FT_01_BD=false +EX_00_LB=V_iew PDF File +EX_00_CM=xpdf "%f" +EX_00_BD=false +EX_01_LB=_View DVI File +EX_01_CM=xdvi "%f" +EX_01_BD=false diff --git a/data/filetypes.markdown b/data/filetypes.markdown new file mode 100644 index 00000000..5202546d --- /dev/null +++ b/data/filetypes.markdown @@ -0,0 +1,26 @@ +# For complete documentation of this file, please see Geany's main documentation +[styling] +# foreground;background;bold;italic +# default=0x000000;0xffffff;false;false +# strong=0xff0000;0xffffff;false;false +# emphasis=0xff0000;0xffffff;false;false +# header1=0x0000bb;0xffffff;false;false +# header2=0x0000bb;0xffffff;false;false +# header3=0x0000bb;0xffffff;false;false +# header4=0x0000bb;0xffffff;false;false +# header5=0x0000bb;0xffffff;false;false +# header6=0x0000bb;0xffffff;false;false +# ulist_item=0x007f00;0xffffff;false;false +# olist_item=0x007f00;0xffffff;false;false +# blockquote=0xff0000;0xffffff;false;false +# strikeout=0xaa00ff;0xffffff;false;false +# hrule=0xff901e;0xffffff;false;false +# link=0x0000ff;0xffffff;false;false +# code=0x009f00;0xffffff;false;false +# codebk=0x005f00;0xffffff;false;false + +[settings] +# default extension used when saving files +extension=mdml + + diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in index ba3ba5f0..bf9eb55a 100644 --- a/doc/Doxyfile.in +++ b/doc/Doxyfile.in @@ -94,7 +94,8 @@ WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- -INPUT = ../src/ ./ ../plugins/pluginmacros.h ../plugins/geanyplugin.h \ +INPUT = ../src/ ./ \ + ../plugins/pluginmacros.h ../plugins/geanyplugin.h ../plugins/geanyfunctions.h \ ../tagmanager/tm_source_file.c ../tagmanager/include/tm_source_file.h \ ../tagmanager/tm_work_object.c ../tagmanager/include/tm_work_object.h \ ../tagmanager/tm_workspace.c ../tagmanager/include/tm_workspace.h @@ -228,7 +229,7 @@ SEARCH_INCLUDES = NO INCLUDE_PATH = INCLUDE_FILE_PATTERNS = # make G_GNUC_PRINTF a no-op unless doxygen would ignore functions with varargs -PREDEFINED = "G_GNUC_PRINTF(x,y)=" GEANY_DISABLE_DEPRECATED HAVE_PLUGINS +PREDEFINED = "G_GNUC_PRINTF(x,y)=" GEANY_DISABLE_DEPRECATED HAVE_PLUGINS GEANY_FUNCTIONS_H EXPAND_AS_DEFINED = SKIP_FUNCTION_MACROS = NO #--------------------------------------------------------------------------- diff --git a/doc/geany.1.in b/doc/geany.1.in index 8717faf4..21e48cf0 100644 --- a/doc/geany.1.in +++ b/doc/geany.1.in @@ -1,4 +1,4 @@ -.TH "GEANY" "1" "May 02, 2009" "geany @VERSION@" "" +.TH "GEANY" "1" "August 16, 2009" "geany @VERSION@" "" .SH "NAME" Geany \(em a small and lightweight IDE .SH "SYNOPSIS" diff --git a/doc/geany.html b/doc/geany.html index d045d89b..02fb973c 100644 --- a/doc/geany.html +++ b/doc/geany.html @@ -6,7 +6,7 @@