Skip to content

Commit

Permalink
Merge pull request #1 from geany/master
Browse files Browse the repository at this point in the history
Update from geany/geany
  • Loading branch information
samsulmaarif committed Nov 8, 2015
2 parents 19e9866 + 6c96738 commit ee2809f
Show file tree
Hide file tree
Showing 512 changed files with 112,624 additions and 98,522 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ Makefile.in
/geany.glade.bak
/geany.gladep.bak
/geany.pc
/geany.nsi
/geany.spec
/geany_private.res
/global.tags.old
Expand Down Expand Up @@ -92,13 +93,15 @@ Makefile.in
# /src/
#-----------------------------------------------------------------------
/src/geany
/src/signallist.i

#-----------------------------------------------------------------------
# /doc/
#-----------------------------------------------------------------------
/doc/Doxyfile
/doc/Doxyfile.stamp
/doc/geany.1
/doc/geany.html
/doc/hacking.html
/doc/*.pdf
/doc/*.aux
Expand Down
34 changes: 34 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# we use both C and C++, so advertize C++
language: cpp
compiler:
- gcc
env:
- GTK3=no
- GTK3=yes
- GTK3=no MINGW=yes
- GTK3=yes MINGW=yes
before_install:
- sudo apt-get update -qq
install:
- sudo apt-get install -y intltool libtool
- test -n "$MINGW" || sudo apt-get install -y libgtk2.0-dev libgtk-3-dev
- test -z "$MINGW" || sudo apt-get install -y mingw-w64-tools g++-mingw-w64-i686 gcc-mingw-w64-i686 binutils-mingw-w64-i686
- sudo apt-get install -y python-docutils rst2pdf
# try not to install doxygen-latex because we don't need it and it's huge
- sudo apt-get install -y --no-install-recommends doxygen
before_script:
- export CFLAGS="-g -O2 -Werror=pointer-arith -Werror=aggregate-return -Werror=implicit-function-declaration"
script:
- NOCONFIGURE=1 ./autogen.sh
- >
if [ -n "$MINGW" ]; then
arg=-2; [ "$GTK3" = yes ] && arg=-3;
unset CC CXX;
sh ./scripts/cross-build-mingw.sh $arg;
else
mkdir _build &&
cd _build &&
../configure --enable-gtk3=$GTK3 &&
make -j2 &&
make -j2 check;
fi
67 changes: 46 additions & 21 deletions HACKING
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,12 @@ About this file
This file contains information for anyone wanting to work on the Geany
codebase. You should be aware of the open source licenses used - see
the README file or the documentation. It is reStructuredText; the
source file is HACKING. You can generate hacking.html by running ``make
hacking-doc`` from the doc/ subdirectory.
source file is HACKING.

You can generate this file by:

* Passing the *--enable-html-docs* option to ``configure``.
* Running ``make`` from the doc/ subdirectory.

Writing plugins
---------------
Expand All @@ -28,8 +32,12 @@ You should generate and read the plugin API documentation, see below.
Plugin API documentation
^^^^^^^^^^^^^^^^^^^^^^^^
You can generate documentation for the plugin API using the doxygen
tool. Run ``make api-doc`` in the doc subdirectory. The documentation
will be output to doc/reference/index.html.
tool:

* Pass the *--enable-api-docs* option to ``configure``.
* Run ``make`` from the doc/ subdirectory.

The documentation will be output to doc/reference/index.html.
Alternatively you can view the API documentation online at
http://www.geany.org/manual/reference/.

Expand Down Expand Up @@ -90,7 +98,7 @@ See `Committing`_ for more information.

Windows tools
-------------
* Git: http://git-scm.com/ and http://code.google.com/p/msysgit/
* Git: http://git-scm.com/ and http://msysgit.github.io/
* diff, grep, etc: http://mingw.org/ or http://unxutils.sourceforge.net/

See also the 'Building on Windows' document on the website.
Expand Down Expand Up @@ -153,30 +161,29 @@ Glade
Add user-interface widgets to the Glade 3 file ``data/geany.glade``.
Callbacks for the user-interface should go in ``src/callbacks.c``.

Use Glade 3.8.5. The 3.8 series still supports GTK+ 2, and earlier
point releases did not preserve the order of XML elements, leading to
unmanageable diffs.

GTK versions & API documentation
--------------------------------
Geany requires GTK >= 2.16 and GLib >= 2.20. API symbols from newer
Geany requires GTK >= 2.24 and GLib >= 2.28. API symbols from newer
GTK/GLib versions should be avoided or made optional to keep the source
code building on older systems.

The official GTK 2.16 API documentation may not be available online
anymore, so we put it on http://www.geany.org/manual/gtk/. There
is also a tarball with all available files for download and use with
devhelp.

Using the 2.16 API documentation of the GTK libs (including GLib, GDK
and Pango) has the advantages that you don't get confused by any
newer API additions and you don't have to take care about whether
you can use them or not.
It is recommended to use the 2.24 API documentation of the GTK
libs (including GLib, GDK and Pango) has the advantages
that you don't get confused by any newer API additions and you
don't have to take care about whether you can use them or not.

Coding
------
* Don't write long functions with a lot of variables and/or scopes - break
them down into smaller static functions where possible. This makes code
much easier to read and maintain.
* Use GLib types and functions - gint not int, g_free() not free().
* Your code should build against GLib 2.20 and GTK 2.16. At least for the
moment, we want to keep the minimum requirement for GTK at 2.16 (of
* Your code should build against GLib 2.27.3 and GTK 2.24. At least for the
moment, we want to keep the minimum requirement for GTK at 2.24 (of
course, you can use the GTK_CHECK_VERSION macro to protect code using
later versions).
* Variables should be declared before statements. You can use
Expand Down Expand Up @@ -491,7 +498,7 @@ first (scintilla or ctags).
If you want to reuse an existing lexer and/or tag parser, making a
custom filetype is probably easier - it doesn't require any
changes to the source code. Follow instructions in the manual:
http://geany.org/manual/geany.html#custom-filetypes. Don't forget to
http://geany.org/manual/index.html#custom-filetypes. Don't forget to
update the ``[Groups]`` section in ``filetype_extensions.conf``.

.. warning::
Expand Down Expand Up @@ -608,11 +615,13 @@ Adding a TagManager parser
^^^^^^^^^^^^^^^^^^^^^^^^^^
This assumes the filetype for Geany already exists.

First write or find a CTags compatible parser, foo.c. Note that there
are some language patches for CTags at:
First write or find a CTags compatible parser, foo.c. Check this fork:
https://github.com/fishman/ctags

There may be some unmerged language patches for CTags at:
http://sf.net/projects/ctags - see the tracker.

(You can also try the Anjuta project's tagmanager codebase.)
(You can also try the Anjuta project's anjuta-tags codebase.)

.. note::
From Geany 1.22 GLib's GRegex engine is used instead of POSIX
Expand Down Expand Up @@ -668,6 +677,22 @@ When you have these two files, you have to list your new test along the
other ones in the ``test_source`` variable in ``tests/ctags/Makefile.am``.
Please keep this list sorted alphabetically.

Upgrading Scintilla
-------------------

To upgrade the local Scintilla copy, use the ``scripts/update-scintilla.sh``
script.

To use it, you need to first obtain a copy of the Scintilla sources you want
to update to. This will generally mean checking out a release tag from the
Scintilla Mercurial repository, or extracting a tarball.

Then, just run the script from Geany's to source directory passing the path
to the Scintilla source directory as first argument, and follow the
instructions, if any::

./scripts/update-scintilla.sh /path/to/scintilla/

GDB
---

Expand Down
9 changes: 9 additions & 0 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,15 @@ uninstall-local:
install-data-local:
$(mkinstalldirs) $(DESTDIR)$(pkgdatadir)
$(INSTALL_DATA) $(srcdir)/COPYING $(DESTDIR)$(pkgdatadir)/GPL-2
if MINGW
$(INSTALL_DATA) $(srcdir)/AUTHORS $(DESTDIR)$(prefix)/Authors.txt
$(INSTALL_DATA) $(srcdir)/ChangeLog $(DESTDIR)$(prefix)/Changelog.txt
$(INSTALL_DATA) $(srcdir)/COPYING $(DESTDIR)$(prefix)/Copying.txt
$(INSTALL_DATA) $(srcdir)/README $(DESTDIR)$(prefix)/Readme.txt
$(INSTALL_DATA) $(srcdir)/NEWS $(DESTDIR)$(prefix)/News.txt
$(INSTALL_DATA) $(srcdir)/THANKS $(DESTDIR)$(prefix)/Thanks.txt
$(INSTALL_DATA) $(srcdir)/TODO $(DESTDIR)$(prefix)/Todo.txt
endif

dist-hook:
@if test -d "$(top_srcdir)/.git"; then \
Expand Down
161 changes: 160 additions & 1 deletion NEWS
Original file line number Diff line number Diff line change
@@ -1,4 +1,163 @@
Geany 1.25 (unreleased)
Geany 1.26 (unreleased)

Internationalization
* Updated translations: de, el, es, fr, kk, pt, sv


Geany 1.25 (July 12, 2015)

General
* GTK3 support, while not enabled by default, is now considered stable.
* Improve MacOS X support (PR#396, PR#419, PR#420, Jiří Techet).
* Improve subprocess spawning (especially on Windows) (PR#441,
Dimitar Zhekov).
* Huge tag management performance improvement (auto-completion,
calltips, etc.) (PR#356, Jiří Techet).
* Remove broken "Show macro list" keybinding and feature (PR#378).
* Add %l substitution to build commands (PR#289, Martin Spacek).
* Depend on GTK 2.24 and GLib 2.28.
* Add per-project line wrapping, line breaking and comment
continuation settings.
* The plugin API is now split out of the main executable into libgeany,
a shared library plugins have to link against.

Bug fixes
* Fix applying filetype-specific indentation settings for newly
opened files.
* Fix relative project base path when creating a new project
(#1062).
* Fix next/previous keybindings when no files are open.
* Fix markup injection in some tooltips (#1091).
* Use absolute project path for projects opened from the command
line (PR#431, Jiří Techet).
* Fix goto tag in some cases when the same symbol name appears in
different languages (PR#487, Jiří Techet).
* Fix UI updating after loading a project.
* Fix the currently selected document after Save All.
* Fix leftovers in the Project dialog in some cases (PR#363, Jiří
Techet).
* Fix function return type in symbol list tooltips in some cases
(PR#475, Jiří Techet).
* Fix VTE path following on startup.

Interface
* Show document-related dialogs embedded in the main window ("info
bars") (PR#277, Matthew Brush and Thomas Martitz).
* Plugin manager dialog cleanup and overhaul (PR#251, PR#414).
* Filetypes can now define the MIME type used to select their icon
(PR#179).
* Close documents in the sidebar with middle mouse button (PR#172,
Pavel Roschin).
* Ask whether to replace project files when creating a project.
* Ask whether to adopt the open documents when creating a new
project (PR#315).
* Allow to disable the list of recent files.
* Fix many shadow inconsistencies (PR#411, Jiří Techet).
* Add virtual column and selected chars to the statusbar (Patch #10,
Dimitar Zhekov).
* Add "dirty" terminal indication (PR#476, Jiří Techet).
* Allow to select the None filetype in the Open File dialog
(Issue#483).
* Add configuration menu entries for all filetypes (PR#491, Jiří Techet).

Editor
* Update Scintilla to version 3.5.6 (#1041).
* Do not comment out blank lines when toggling comments (PR#79, Igor
Shaula).
* Improve handling of Verilog strings and comments.
* Support for keeping undo history when reloading files (PR#188, Arthur
Rosenstein). This is not enabled by default in this release.
* Respect filetype.common's wordchars if a filetype doesn't have its own
(Issue#492, PR#501).

Search
* Add support for single-line regular expressions (PR#310).
* Default action is now "Replace & Find" in the replace dialog but
can be configured (Roland Pallai).
* Activate default action from all fields in the Find in Files
dialog (#959).

Filetypes
* Add JSON filetype.
* Add Zephir filetype.
* Add CoffeScript filetype (PR#230, Mark Dresselhaus).
* Add Go tags parser (PR#373, PR#481, Issue#238, Jiří Techet).
* Add Erlang tags parser (PR#445, Beng Tan).
* Add PowerShell tags parser (PR#477).
* Many JavaScript parsing fixes and improvements.
* Many CSS parser fixes and improvements.
* Many Txt2tags parsing fixes and improvements (feature #690).
* Make parser fixes and improvements.
* Parse D enum base type (PR#404).
* Various small Rust fixes (PR#306, SiegeLord).
* Highlight C types in C++.
* Add some missing C11 keywords.
* Add some missing SQL keywords.
* Fix and add some CSS keywords (PR#333, Hannes Heute).
* Fix some FreeBasic keywords (#691).
* Add some missing D keywords (PR#293, Danyal Zia).
* Fix R keywords and wordchars (PR#273, landroni).
* Fix styling of some CSS elements.
* Fix styling of Lua preprocessor.
* Fix style of PHP variables interpolation.
* Recognize `.vbs` files as FreeBasic (PR#171, Nicolas Karolak).
* Recognize `.tpl` files as HTML.
* Recognize `.xtpl` files as XML.
* Recognize `.xpm` files as C.
* Recognize more Bash files (PR#291, Peter Bittner).
* Update templates for Python and Vala.
* Add template for HTML5.
* Fix parsing of some Python triple-quoted strings.
* Add some linting tools to some filetype's default Build menu.
* Fix scope of some Python symbols.
* Fix support of trigraphs in C-like languages.
* Add support of digraphs in C-like languages.
* Add support of `final`, `override` and `noexcept` C++11 keywords
(PR#544).

Internationalization
* Update translations: be, ca, cs, de, el, es, fr, id, it, ja, nl, pl,
pt_BR, pt, ru, sl, sr, sv, zh_CN.

Plugins
* File Browser: use "explorer" as the default open command on
Windows.
* File Browser: use icons based on the detected file's MIME type (PR#455,
Jiří Techet).
* Save Actions: use mode 0600 for backup copies (#833, PR#413).
* Split Window: Fix a few keybindings (cut, copy, paste, delete,
select all) (PR#467, Alex).

API
* Hide private API (PR#351, Jiří Techet, and PR#429, Matthew Brush and
Thomas Martitz).
* Cleaner and safer TagManager API (Part of PR#356, Jiří Techet).
* Entry point prototypes are now checked by the compiler (PR#359).
* Add pseudo-unique document IDs through GeanyDocument::id and
document_find_by_id(). This is a safer API for keeping a reference
to a document for a long time (PR#256).
* Add convenient and portable spawning API: spawn_sync(), spawn_async(),
spawn_with_callbacks(), spawn_kill_process(), spawn_check_command(),
spawn_write_data() (PR#441, Dimitar Zhekov).
* plugin_signal_connect() is now safe to use also with objects
destroyed before unloading the plugin.
* Add document_reload_force() to replace document_reload_file().
* Add project_write_config() (PR#361, Jiří Techet).
* Add keybindings_get_modifiers() and GEANY_PRIMARY_MOD_MASK (Jiří
Techet).
* Fix emission of the 'document-activate' signal in some cases.
* Add ui_tree_view_set_tooltip_text_column().
* Add scintilla_get_type().

Windows
* Use native Windows quoting rules for commands (on Windows, part of
subprocess spawning improvements).
* Prompt before overwriting existing files when using native Save As
dialog (PR#113, Adam Coyne).
* View -> Change Font now respects the native dialog setting.
* Fix main window freeze when displaying native dialogs.
* Use the same plugin directory as other platforms (PR#540, Thomas
Martitz).


Geany 1.24.1 (April 16, 2014)
Expand Down
Loading

0 comments on commit ee2809f

Please sign in to comment.