Revision: 2290
http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=2290&view=rev
Author: frlan
Date: 2011-10-19 20:23:31 +0000 (Wed, 19 Oct 2011)
Log Message:
-----------
Remove geanycfp as its replaced by geanymacro and geanynumberbookmarks
Modified Paths:
--------------
trunk/geany-plugins/configure.ac
Removed Paths:
-------------
trunk/geany-plugins/build/geanycfp.m4
trunk/geany-plugins/geanycfp/ABOUT
trunk/geany-plugins/geanycfp/AUTHORS
trunk/geany-plugins/geanycfp/COPYING
trunk/geany-plugins/geanycfp/ChangeLog
trunk/geany-plugins/geanycfp/INSTALL
trunk/geany-plugins/geanycfp/Makefile.am
trunk/geany-plugins/geanycfp/NEWS
trunk/geany-plugins/geanycfp/README
trunk/geany-plugins/geanycfp/src/Makefile.am
trunk/geany-plugins/geanycfp/src/geanycfp.c
trunk/geany-plugins/geanycfp/wscript_build
trunk/geany-plugins/geanycfp/wscript_configure
Deleted: trunk/geany-plugins/build/geanycfp.m4
===================================================================
--- trunk/geany-plugins/build/geanycfp.m4 2011-10-19 19:12:44 UTC (rev 2289)
+++ trunk/geany-plugins/build/geanycfp.m4 2011-10-19 20:23:31 UTC (rev 2290)
@@ -1,9 +0,0 @@
-AC_DEFUN([GP_CHECK_GEANYCFP],
-[
- GP_ARG_DISABLE([geanycfp], [no])
- GP_STATUS_PLUGIN_ADD([GeanyCFP], [$enable_geanycfp])
- AC_CONFIG_FILES([
- geanycfp/Makefile
- geanycfp/src/Makefile
- ])
-])
Modified: trunk/geany-plugins/configure.ac
===================================================================
--- trunk/geany-plugins/configure.ac 2011-10-19 19:12:44 UTC (rev 2289)
+++ trunk/geany-plugins/configure.ac 2011-10-19 20:23:31 UTC (rev 2290)
@@ -28,7 +28,6 @@
GP_CHECK_CODENAV
GP_CHECK_DEBUGGER
GP_CHECK_DEVHELP
-GP_CHECK_GEANYCFP
GP_CHECK_GEANYDOC
GP_CHECK_GEANYEXTRASEL
GP_CHECK_GEANYGDB
Deleted: trunk/geany-plugins/geanycfp/ABOUT
===================================================================
--- trunk/geany-plugins/geanycfp/ABOUT 2011-10-19 19:12:44 UTC (rev 2289)
+++ trunk/geany-plugins/geanycfp/ABOUT 2011-10-19 20:23:31 UTC (rev 2290)
@@ -1,66 +0,0 @@
-geanycfp is a plugin to provide some features found in a Text Editor for Windows
-in Geany. CFP is short for ConText feature parity.
-It provides the following features:
-
- * Up to 10 numbered bookmarks per file to make code navigaing easier
- * User recordable macros so that users can record and then with a key press
- repeat them
- * Remembering fold states in code files (this isn't a feature in ConText, but
- I find it useful)
-
-Numbered Bookmarks:
-Normaly if you had more than one bookmark, you would have to cycle through them
-until you reached the one you wanted. With this plugin you can go straight to
-the bookmark that you want with a single key combination.
-
-To set a numbered bookmark press Ctrl+Shift+(a number from 0 to 9). You will
-see a marker apear next to the line number. If you press Ctrl+Shift+(a number)
-on a line that already has that bookmark number then it removes the bookmark,
-otherwise it will move the bookmark there if it was set on a different line, or
-create it if it had not already been set.
-
-Only the bookmark with the highest number on a line will be shown, but you can
-have more than one bookmark per line. This plugin does not interfer with regular
-bookmarks. When a file is saved, Geany will remember the numbered bookmarks and
-make sure that they are set the next time you open the file. If the file has
-been changed since you last edited it in geany, when the file is opened it will
-check to see if it should not try to set the bookmarks (as the line numbers may
-have changed, or even not be there anymore), or ignore the warning and try and
-set them where they were last time the file was saved by geany.
-
-Macros:
-These are sequences of actions that can then be repeated with a single key
-combination. So if you had dozens of lines where you wanted to delete the last
-2 characters, you could simple start recording, press End, Backspace,
-Backspace, down line and then stop recording. Then simply trigger the macro and
-it would automaticaly edit the line and move to the next.
-
-Select Record Macro from the Tools menu and you will be prompted with a dialog
-box. You need to specify a key combination that isn't being used, and a name
-for the macro to help you identify it. Then press Record. What you do in the
-editor is then recorded until you select Stop Recording Macro from the Tools
-menu. Simply pressing the specified key combination will re-run the macro.
-
-To edit the macros you already have select Edit Macro from the Tools menu. You
-can select a macro and delete it, or re-record it. You can also click on a
-macro's name and change it, or the key combination and re-define that asuming
-that the new name or key combination are not already in use.
-
-
-You can alter the default behaviur of this plugin by selecting Plugin Manager
-under the Tools menu, selecting this plugin, and cliking Preferences.
-You can change:
-Remember fold state - if this is set then this plugin will remember the state
- of any folds along with the numbered bookmarks and set them when the file
- is next loaded.
-Center view when goto bookmark - If this is set it will try to make sure that
- the numbered bookmark that you are going to is in the center of the screen,
- otherwise it will simply be on the screen somewhere.
-Save Macros when close Geany - If this is selected then Geany will save any
- recorded macros and reload them for use the next time you open Geany, if
- not they will be lost when Geany is closed.
-Ask before replaceing existing Macros - If this is selected then if you try
- recording a macro over an existing one it will check before over-writing
- it, giving you the option of trying a different name or key trigger
- combination, otherwise it will simply erase any existing macros with the
- same name, or the same key trigger combination.
Deleted: trunk/geany-plugins/geanycfp/AUTHORS
===================================================================
--- trunk/geany-plugins/geanycfp/AUTHORS 2011-10-19 19:12:44 UTC (rev 2289)
+++ trunk/geany-plugins/geanycfp/AUTHORS 2011-10-19 20:23:31 UTC (rev 2290)
@@ -1 +0,0 @@
-William Fraser <william(dot)fraser(at)virgin(dot)net>
Deleted: trunk/geany-plugins/geanycfp/COPYING
===================================================================
--- trunk/geany-plugins/geanycfp/COPYING 2011-10-19 19:12:44 UTC (rev 2289)
+++ trunk/geany-plugins/geanycfp/COPYING 2011-10-19 20:23:31 UTC (rev 2290)
@@ -1,340 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) year name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
Deleted: trunk/geany-plugins/geanycfp/ChangeLog
===================================================================
--- trunk/geany-plugins/geanycfp/ChangeLog 2011-10-19 19:12:44 UTC (rev 2289)
+++ trunk/geany-plugins/geanycfp/ChangeLog 2011-10-19 20:23:31 UTC (rev 2290)
@@ -1,3 +0,0 @@
-2011-01-15 William Fraser <william(dot)fraser(at)virgin(dot)net>
-
- * Added plugin to geany-plugin svn.
Deleted: trunk/geany-plugins/geanycfp/INSTALL
===================================================================
--- trunk/geany-plugins/geanycfp/INSTALL 2011-10-19 19:12:44 UTC (rev 2289)
+++ trunk/geany-plugins/geanycfp/INSTALL 2011-10-19 20:23:31 UTC (rev 2290)
@@ -1,23 +0,0 @@
-These installation instructions are written for a Linux system, but
-should work also on other plattforms as Windows is.
-
-Building the plugin requires Geany 0.20 or above (Geany Plugin API v147
-or higher).
-
-You need the build environment installed as described at:
-http://www.geany.org/manual/reference/howto.html
-
-The following two lines when executed from the shell compile the plugin:
-
-gcc -c geanycfp.c -Wformat=0 -fPIC `pkg-config --cflags geany`
-gcc geanycfp.o -o geanycfp.so -shared `pkg-config --libs geany`
-
-The following line moves it into geany's plugin directory
-
-sudo cp geanycfp.so `pkg-config --variable=libdir geany`/geany/
-
-The following lines clean up files used during compilation:
-
-rm geanycfp.o
-rm geanycfp.so
-
Deleted: trunk/geany-plugins/geanycfp/Makefile.am
===================================================================
--- trunk/geany-plugins/geanycfp/Makefile.am 2011-10-19 19:12:44 UTC (rev 2289)
+++ trunk/geany-plugins/geanycfp/Makefile.am 2011-10-19 20:23:31 UTC (rev 2290)
@@ -1,8 +0,0 @@
-if ENABLE_GEANYCFP
-include $(top_srcdir)/build/vars.auxfiles.mk
-else
-include $(top_srcdir)/build/vars.docs.mk
-endif
-
-SUBDIRS = src
-plugin = geanycfp
Deleted: trunk/geany-plugins/geanycfp/NEWS
===================================================================
Deleted: trunk/geany-plugins/geanycfp/README
===================================================================
--- trunk/geany-plugins/geanycfp/README 2011-10-19 19:12:44 UTC (rev 2289)
+++ trunk/geany-plugins/geanycfp/README 2011-10-19 20:23:31 UTC (rev 2290)
@@ -1,66 +0,0 @@
-geanycfp is a plugin to provide some features found in a Text Editor for Windows
-in Geany. CFP is short for ConText feature parity.
-It provides the following features:
-
- * Up to 10 numbered bookmarks per file to make code navigaing easier
- * User recordable macros so that users can record and then with a key press
- repeat them
- * Remembering fold states in code files (this isn't a feature in ConText, but
- I find it useful)
-
-Numbered Bookmarks:
-Normaly if you had more than one bookmark, you would have to cycle through them
-until you reached the one you wanted. With this plugin you can go straight to
-the bookmark that you want with a single key combination.
-
-To set a numbered bookmark press Ctrl+Shift+(a number from 0 to 9). You will
-see a marker apear next to the line number. If you press Ctrl+Shift+(a number)
-on a line that already has that bookmark number then it removes the bookmark,
-otherwise it will move the bookmark there if it was set on a different line, or
-create it if it had not already been set.
-
-Only the bookmark with the highest number on a line will be shown, but you can
-have more than one bookmark per line. This plugin does not interfer with regular
-bookmarks. When a file is saved, Geany will remember the numbered bookmarks and
-make sure that they are set the next time you open the file. If the file has
-been changed since you last edited it in geany, when the file is opened it will
-check to see if it should not try to set the bookmarks (as the line numbers may
-have changed, or even not be there anymore), or ignore the warning and try and
-set them where they were last time the file was saved by geany.
-
-Macros:
-These are sequences of actions that can then be repeated with a single key
-combination. So if you had dozens of lines where you wanted to delete the last
-2 characters, you could simple start recording, press End, Backspace,
-Backspace, down line and then stop recording. Then simply trigger the macro and
-it would automaticaly edit the line and move to the next.
-
-Select Record Macro from the Tools menu and you will be prompted with a dialog
-box. You need to specify a key combination that isn't being used, and a name
-for the macro to help you identify it. Then press Record. What you do in the
-editor is then recorded until you select Stop Recording Macro from the Tools
-menu. Simply pressing the specified key combination will re-run the macro.
-
-To edit the macros you already have select Edit Macro from the Tools menu. You
-can select a macro and delete it, or re-record it. You can also click on a
-macro's name and change it, or the key combination and re-define that asuming
-that the new name or key combination are not already in use.
-
-
-You can alter the default behaviur of this plugin by selecting Plugin Manager
-under the Tools menu, selecting this plugin, and cliking Preferences.
-You can change:
-Remember fold state - if this is set then this plugin will remember the state
- of any folds along with the numbered bookmarks and set them when the file
- is next loaded.
-Center view when goto bookmark - If this is set it will try to make sure that
- the numbered bookmark that you are going to is in the center of the screen,
- otherwise it will simply be on the screen somewhere.
-Save Macros when close Geany - If this is selected then Geany will save any
- recorded macros and reload them for use the next time you open Geany, if
- not they will be lost when Geany is closed.
-Ask before replaceing existing Macros - If this is selected then if you try
- recording a macro over an existing one it will check before over-writing
- it, giving you the option of trying a different name or key trigger
- combination, otherwise it will simply erase any existing macros with the
- same name, or the same key trigger combination.
Deleted: trunk/geany-plugins/geanycfp/src/Makefile.am
===================================================================
--- trunk/geany-plugins/geanycfp/src/Makefile.am 2011-10-19 19:12:44 UTC (rev 2289)
+++ trunk/geany-plugins/geanycfp/src/Makefile.am 2011-10-19 20:23:31 UTC (rev 2290)
@@ -1,12 +0,0 @@
-include $(top_srcdir)/build/vars.build.mk
-
-if ENABLE_GEANYCFP
-geanyplugins_LTLIBRARIES = geanycfp.la
-else
-EXTRA_LTLIBRARIES = geanycfp.la
-endif
-
-geanycfp_la_SOURCES = geanycfp.c
-geanycfp_la_LIBADD = $(COMMONLIBS)
-
-include $(top_srcdir)/build/cppcheck.mk
Deleted: trunk/geany-plugins/geanycfp/src/geanycfp.c
===================================================================
--- trunk/geany-plugins/geanycfp/src/geanycfp.c 2011-10-19 19:12:44 UTC (rev 2289)
+++ trunk/geany-plugins/geanycfp/src/geanycfp.c 2011-10-19 20:23:31 UTC (rev 2290)
@@ -1,2156 +0,0 @@
-/*
- * This code is supplied as is, and is used at your own risk.
- * The GNU GPL version 2 rules apply to this code (see http://fsf.org/>
- * You can alter it, and pass it on as you want.
- * If you alter it, or pass it on, the only restriction is that this disclamour and licence be
- * left intact
- *
- * Features of Macro implementation adapted from gPHPedit (currently maintained by Anoop John)
- *
- * william.fraser(a)virgin.net
- * 2010-11-01
-*/
-
-
-#include "geanyplugin.h"
-#include "utils.h"
-#include "Scintilla.h"
-#include <stdlib.h>
-#include <sys/stat.h>
-#include <string.h>
-#include <gdk/gdkkeysyms.h>
-#include <gtk/gtk.h>
-
-static const gint base64_char_to_int[]=
-{
- 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
- 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
- 255,255,255,255,255,255,255,255,255,255,255, 62,255,255,255, 63,
- 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,255,255,255, 0,255,255,
- 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,255,255,255,255,255,
- 255, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,255,255,255,255,255
-};
-
-static const gchar base64_int_to_char[]=
- "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-
-/* offset for marker numbers used - to bypass markers used by normal bookmarksetc */
-#define BOOKMARK_BASE 10
-
-/* define structures used in this plugin */
-typedef struct FileData
-{
- gchar *pcFileName; /* holds filename */
- gint iBookmark[10]; /* holds bookmark lines or -1 for not set */
- gchar *pcFolding; /* holds which folds are open and which not */
- gint LastChangedTime; /* time file was last changed by this editor */
- struct FileData * NextNode;
-} FileData;
-
-/* structure to hold list of Scintilla objects that have had icons set for bookmarks */
-typedef struct SCIPOINTERHOLDER
-{
- ScintillaObject* sci;
- struct SCIPOINTERHOLDER * NextNode;
-} SCIPOINTERHOLDER;
-
-/* structure to hold details of Macro event */
-typedef struct
-{
- gint message;
- /* I'm leaving wparam commented out as this may prove useful if it's used by a Scintilla
- * message that's recorded in a macro that I'm not aware of yet
- */
- /* gulong wparam; */
- glong lparam;
-} MacroEvent;
-
-/* structure to hold details of a macro */
-typedef struct
-{
- gchar *name;
- /* trigger codes */
- guint keyval;
- guint state;
- GSList *MacroEvents;
-} Macro;
-
-GeanyPlugin *geany_plugin;
-GeanyData *geany_data;
-GeanyFunctions *geany_functions;
-
-PLUGIN_VERSION_CHECK(147)
-
-PLUGIN_SET_INFO("CTFP",_("ConText Feature parity plugin"),
- "0.1","William Fraser <william.fraser(a)virgin.net>");
-
-/* Plugin user alterable settings */
-static gboolean bCenterWhenGotoBookmark=TRUE;
-static gboolean bRememberFolds=TRUE;
-static gboolean bSaveMacros=TRUE;
-static gboolean bQueryOverwriteMacros=TRUE;
-
-/* internal variables */
-static gint iShiftNumbers[]={41,33,34,163,36,37,94,38,42,40};
-static SCIPOINTERHOLDER *sciList=NULL;
-static FileData *fdKnownFilesSettings=NULL;
-static gulong key_release_signal_id;
-static GtkWidget *Record_Macro_menu_item=NULL;
-static GtkWidget *Stop_Record_Macro_menu_item=NULL;
-static GtkWidget *Edit_Macro_menu_item=NULL;
-static Macro *RecordingMacro=NULL;
-static GSList *mList=NULL;
-static gboolean bMacrosHaveChanged=FALSE;
-
-/* default config file */
-const gchar default_config[] =
- "[Settings]\n"
- "Center_When_Goto_Bookmark = true\n"
- "Remember_Folds = true\n"
- "Save_Macros = true\n"
- "Question_Macro_Overwrite = true\n"
- "Number_of_files = 0\n"
- "[FileData]\n"
- "[Macros]";
-
-/* Definitions for bookmark images */
-static gchar * aszMarkerImage0[] =
-{
- "17 14 3 1", /* width height colours characters-per-pixel */
- ". c None",
- "B c #000000",
- "* c #FFFF00",
- "...BBBBBBBBBB....",
- "..B**********B...",
- ".B****BBBB****B..",
- "B****BB**BB****B.",
- "B****B****B****B.",
- "B****B****B****B.",
- "B****B*BB*B****B.",
- "B****B****B****B.",
- "B****B****B****B.",
- "B****B****B****B.",
- "B****BB**BB****B.",
- ".B****BBBB****B..",
- "..B**********B...",
- "...BBBBBBBBBB...."
-};
-static gchar * aszMarkerImage1[] =
-{
- "17 14 3 1", /* width height colours characters-per-pixel */
- ". c None",
- "B c #000000",
- "* c #FFFF00",
- "...BBBBBBBBBB....",
- "..B**********B...",
- ".B*****BB*****B..",
- "B*****BBB******B.",
- "B*******B******B.",
- "B*******B******B.",
- "B*******B******B.",
- "B*******B******B.",
- "B*******B******B.",
- "B*******B******B.",
- "B*******B******B.",
- ".B****BBBBB***B..",
- "..B**********B...",
- "...BBBBBBBBBB...."
-};
-static gchar * aszMarkerImage2[] =
-{
- "17 14 3 1", /* width height colours characters-per-pixel */
- ". c None",
- "B c #000000",
- "* c #FFFF00",
- "...BBBBBBBBBB....",
- "..B**********B...",
- ".B****BBBB****B..",
- "B****BB**BB****B.",
- "B*********B****B.",
- "B*********B****B.",
- "B********BB****B.",
- "B*******BB*****B.",
- "B******BB******B.",
- "B*****BB*******B.",
- "B****BB********B.",
- ".B***BBBBBB***B..",
- "..B**********B...",
- "...BBBBBBBBBB...."
-};
-static gchar * aszMarkerImage3[] =
-{
- "17 14 3 1", /* width height colours characters-per-pixel */
- ". c None",
- "B c #000000",
- "* c #FFFF00",
- "...BBBBBBBBBB....",
- "..B**********B...",
- ".B****BBBB****B..",
- "B****BB**BB****B.",
- "B*********B****B.",
- "B********BB****B.",
- "B*****BBBB*****B.",
- "B********BB****B.",
- "B*********B****B.",
- "B*********B****B.",
- "B****BB**BB****B.",
- ".B****BBBB****B..",
- "..B**********B...",
- "...BBBBBBBBBB...."
-};
-static gchar * aszMarkerImage4[] =
-{
- "17 14 3 1", /* width height colours characters-per-pixel */
- ". c None",
- "B c #000000",
- "* c #FFFF00",
- "...BBBBBBBBBB....",
- "..B**********B...",
- ".B******BB****B..",
- "B*******BB*****B.",
- "B******B*B*****B.",
- "B******B*B*****B.",
- "B*****B**B*****B.",
- "B*****B**B*****B.",
- "B****BBBBBB****B.",
- "B********B*****B.",
- "B********B*****B.",
- ".B*******B****B..",
- "..B**********B...",
- "...BBBBBBBBBB...."
-};
-static gchar * aszMarkerImage5[] =
-{
- "17 14 3 1", /* width height colours characters-per-pixel */
- ". c None",
- "B c #000000",
- "* c #FFFF00",
- "...BBBBBBBBBB....",
- "..B**********B...",
- ".B***BBBBBB***B..",
- "B****B*********B.",
- "B****B*********B.",
- "B****B*********B.",
- "B****BBBBB*****B.",
- "B********BB****B.",
- "B*********B****B.",
- "B*********B****B.",
- "B****BB**BB****B.",
- ".B****BBBB****B..",
- "..B**********B...",
- "...BBBBBBBBBB...."
-};
-static gchar * aszMarkerImage6[] =
-{
- "17 14 3 1", /* width height colours characters-per-pixel */
- ". c None",
- "B c #000000",
- "* c #FFFF00",
- "...BBBBBBBBBB....",
- "..B**********B...",
- ".B*****BBBB***B..",
- "B*****BB*******B.",
- "B****BB********B.",
- "B****B*********B.",
- "B****BBBBB*****B.",
- "B****BB**BB****B.",
- "B****B****B****B.",
- "B****B****B****B.",
- "B****BB**BB****B.",
- ".B****BBBB****B..",
- "..B**********B...",
- "...BBBBBBBBBB...."
-};
-static gchar * aszMarkerImage7[] =
-{
- "17 14 3 1", /* width height colours characters-per-pixel */
- ". c None",
- "B c #000000",
- "* c #FFFF00",
- "...BBBBBBBBBB....",
- "..B**********B...",
- ".B***BBBBBB***B..",
- "B*********B****B.",
- "B********B*****B.",
- "B*******B******B.",
- "B*******B******B.",
- "B******B*******B.",
- "B*****B********B.",
- "B*****B********B.",
- "B****B*********B.",
- ".B***B********B..",
- "..B**********B...",
- "...BBBBBBBBBB...."
-};
-static gchar * aszMarkerImage8[] =
-{
- "17 14 3 1", /* width height colours characters-per-pixel */
- ". c None",
- "B c #000000",
- "* c #FFFF00",
- "...BBBBBBBBBB....",
- "..B**********B...",
- ".B****BBBB****B..",
- "B****BB**BB****B.",
- "B****B****B****B.",
- "B****BB**BB****B.",
- "B*****BBBB*****B.",
- "B****BB**BB****B.",
- "B****B****B****B.",
- "B****B****B****B.",
- "B****BB**BB****B.",
- ".B****BBBB****B..",
- "..B**********B...",
- "...BBBBBBBBBB...."
-};
-static gchar * aszMarkerImage9[] =
-{
- "17 14 3 1", /* width height colours characters-per-pixel */
- ". c None",
- "B c #000000",
- "* c #FFFF00",
- "...BBBBBBBBBB....",
- "..B**********B...",
- ".B****BBBB****B..",
- "B****BB**BB****B.",
- "B****B****B****B.",
- "B****BB**BB****B.",
- "B*****BBBBB****B.",
- "B*********B****B.",
- "B*********B****B.",
- "B********BB****B.",
- "B*******BB*****B.",
- ".B***BBBB*****B..",
- "..B**********B...",
- "...BBBBBBBBBB...."
-};
-
-static gchar ** aszMarkerImages[]=
-{
- aszMarkerImage0,aszMarkerImage1,aszMarkerImage2,aszMarkerImage3,aszMarkerImage4,
- aszMarkerImage5,aszMarkerImage6,aszMarkerImage7,aszMarkerImage8,aszMarkerImage9
-};
-
-/* clear macro events list and free up any memory they are using */
-static GSList * ClearMacroList(GSList *gsl)
-{
- MacroEvent *me;
- GSList * gslTemp=gsl;
-
- while(gslTemp!=NULL)
- {
- me=gslTemp->data;
- /* check to see if it's a message that has string attached, and free it if so */
- if(me->message==SCI_REPLACESEL)
- g_free((void*)(me->lparam));
-
- g_free((void*)(gslTemp->data));
- gslTemp=g_slist_next(gslTemp);
- }
-
- g_slist_free(gsl);
-
- return NULL;
-}
-
-
-/* create new Macro */
-static Macro * CreateMacro(void)
-{
- Macro *m;
-
- if((m=(Macro*)(g_malloc(sizeof *m)))!=NULL)
- {
- m->name=NULL;
- m->MacroEvents=NULL;
- return m;
- }
- return NULL;
-}
-
-
-/* delete macro */
-static Macro * FreeMacro(Macro *m)
-{
- if(m==NULL)
- return NULL;
-
- g_free(m->name);
- ClearMacroList(m->MacroEvents);
- g_free(m);
-
- return NULL;
-}
-
-
-/* add a macro to the list of defined macros */
-static void AddMacroToList(Macro *m)
-{
- mList=g_slist_append(mList,m);
-}
-
-
-/* remove macro from list of defined macros */
-static void RemoveMacroFromList(Macro *m)
-{
- mList=g_slist_remove(mList,m);
-}
-
-
-/* returns a macro in the defined list by name, or NULL if no macro exists with the specified name
-*/
-static Macro * FindMacroByName(gchar *name)
-{
- GSList *gsl=mList;
-
- if(name==NULL)
- return NULL;
-
- while(gsl!=NULL)
- {
- if(strcmp(name,((Macro*)(gsl->data))->name)==0)
- return gsl->data;
-
- gsl=g_slist_next(gsl);
- }
-
- return NULL;
-}
-
-
-/* returns a macro in the defined list by key press combination, or NULL if no macro exists
- * with the specified key combination */
-static Macro * FindMacroByKey(guint keyval,guint state)
-{
- GSList *gsl=mList;
-
- while(gsl!=NULL)
- {
- if(((Macro*)(gsl->data))->keyval==keyval && ((Macro*)(gsl->data))->state==state)
- return gsl->data;
-
- gsl=g_slist_next(gsl);
- }
-
- return NULL;
-}
-
-
-/* completely wipe all saved macros and ascosiated memory */
-static void ClearAllMacros(void)
-{
- GSList *gsl=mList;
-
- while(gsl!=NULL)
- {
- FreeMacro((Macro*)(gsl->data));
- gsl=g_slist_next(gsl);
- }
- g_slist_free(mList);
- mList=NULL;
-}
-
-
-/* Repeat a macro to the editor */
-static void ReplayMacro(Macro *m)
-{
- MacroEvent *me;
- GSList *gsl=m->MacroEvents;
- ScintillaObject* sci=document_get_current()->editor->sci;
-
- scintilla_send_message(sci,SCI_BEGINUNDOACTION,0,0);
-
- while(gsl!=NULL)
- {
- me=gsl->data;
-/* may be needed if come across any scintilla messages that use wparam */
-/* scintilla_send_message(sci,me->message,me->wparam,me->lparam); */
- scintilla_send_message(sci,me->message,0,me->lparam);
- gsl=g_slist_next(gsl);
- }
-
- scintilla_send_message(sci,SCI_ENDUNDOACTION,0,0);
-}
-
-
-/* convert string so that it can be saved as text in a comma separated text entry in an ini file
- * resultant string needs to be freed after use
-*/
-static gchar * MakeStringSaveable(gchar *s)
-{
- gchar *cTemp;
- gchar **pszBits;
-
- /* use GLib routine to do most of the work
- * (sort out all special characters, and non-ASCII characters)
- */
- cTemp=g_strescape(s,"");
- /* now make sure that all instances of ',' are replaced by octal version so that can use ',' as
- * a separator
- * first break the string up at the commas
- */
- pszBits=g_strsplit(cTemp,",",0);
- /* can now free up cTemp */
- g_free(cTemp);
- /* now combine bits together with octal verion of comma in-between */
- cTemp=g_strjoinv("\\054",pszBits);
- /* free up memory used by bits */
- g_strfreev(pszBits);
-
- return cTemp;
-}
-
-
-/* create a macro event from an array of stings. This command may move past more than one array
- * entry if the macro event details require it
-*/
-static MacroEvent * GetMacroEventFromString(gchar **s,gint *k)
-{
- MacroEvent *me;
-
- me=g_new0(MacroEvent,1);
- /* get event number */
- me->message=strtoll(s[(*k)++],NULL,10);
-
- /* now handle lparam if required */
- switch(me->message)
- {
- case SCI_REPLACESEL:
- /* get text */
- me->lparam=(glong)(g_strcompress(s[(*k)++]));
- break;
- /* default handler for messages without extra data */
- default:
- me->lparam=0;
- break;
- }
-
- /* return MacroEvent object */
- return me;
-}
-
-
-/* convert a Macro event to a string that can be savable in a comma separated ini file entry
- * resultant string needs to be freed afterwards
-*/
-static gchar *MacroEventToString(MacroEvent *me)
-{
- gchar *szMacroNumber;
- gchar *szNumberAndData;
- gchar *pTemp;
-
- /* save off macro code */
- szMacroNumber=g_strdup_printf("%i",me->message);
-
- /* now handle lparam if required */
- switch(me->message)
- {
- case SCI_REPLACESEL:
- /* first get string reprisentation of data */
- pTemp=MakeStringSaveable((gchar*)(me->lparam));
- /* now merge code and data */
- szNumberAndData=g_strdup_printf("%s,%s",szMacroNumber,pTemp);
- /* free memory */
- g_free(szMacroNumber);
- g_free(pTemp);
- return szNumberAndData;
- /* default handler for messages without extra data */
- default:
- return szMacroNumber;
- }
-}
-
-
-/* check editor notifications and remember editor events */
-static gboolean Notification_Handler(GObject *obj, GeanyEditor *editor, SCNotification *nt,
- gpointer user_data)
-{
- MacroEvent *me;
-
- /* ignore non macro recording messages */
- if(nt->nmhdr.code!=SCN_MACRORECORD)
- return FALSE;
-
- /* probably overkill as should not recieve SCN_MACRORECORD messages unless recording macros */
- if(RecordingMacro==NULL)
- return FALSE;
-
- /* check to see if it's a code we're happy to deal with */
- switch(nt->message)
- {
- case SCI_REPLACESEL:
- case SCI_CUT:
- case SCI_COPY:
- case SCI_PASTE:
- case SCI_CLEAR:
- case SCI_LINEDOWN:
- case SCI_LINEDOWNEXTEND:
- case SCI_LINEUP:
- case SCI_LINEUPEXTEND:
- case SCI_CHARLEFT:
- case SCI_CHARLEFTEXTEND:
- case SCI_CHARRIGHT:
- case SCI_CHARRIGHTEXTEND:
- case SCI_WORDLEFT:
- case SCI_WORDLEFTEXTEND:
- case SCI_WORDRIGHT:
- case SCI_WORDRIGHTEXTEND:
- case SCI_HOME:
- case SCI_HOMEEXTEND:
- case SCI_LINEEND:
- case SCI_LINEENDEXTEND:
- case SCI_DOCUMENTSTART:
- case SCI_DOCUMENTSTARTEXTEND:
- case SCI_DOCUMENTEND:
- case SCI_DOCUMENTENDEXTEND:
- case SCI_PAGEUP:
- case SCI_PAGEUPEXTEND:
- case SCI_PAGEDOWN:
- case SCI_PAGEDOWNEXTEND:
- case SCI_EDITTOGGLEOVERTYPE:
- case SCI_CANCEL:
- case SCI_DELETEBACK:
- case SCI_TAB:
- case SCI_BACKTAB:
- case SCI_NEWLINE:
- case SCI_FORMFEED:
- case SCI_VCHOME:
- case SCI_VCHOMEEXTEND:
- case SCI_ZOOMIN:
- case SCI_ZOOMOUT:
- case SCI_DELWORDLEFT:
- case SCI_DELWORDRIGHT:
- case SCI_LINECUT:
- case SCI_LINEDELETE:
- case SCI_LINETRANSPOSE:
- case SCI_LOWERCASE:
- case SCI_UPPERCASE:
- case SCI_LINESCROLLDOWN:
- case SCI_LINESCROLLUP:
- case SCI_DELETEBACKNOTLINE:
- case SCI_HOMEDISPLAY:
- case SCI_HOMEDISPLAYEXTEND:
- case SCI_LINEENDDISPLAY:
- case SCI_LINEENDDISPLAYEXTEND:
- break;
- default:
- dialogs_show_msgbox(GTK_MESSAGE_INFO,_("Unrecognised message\n%i %i %i"),nt->message,
- (gint)(nt->wParam),(gint)(nt->lParam));
- return FALSE;
- }
- me=g_new0(MacroEvent,1);
- me->message=nt->message;
-/* me->wparam=nt->wParam; */
- /* Special handling for text inserting, duplicate inserted string */
- me->lparam=(me->message==SCI_REPLACESEL)?((glong) g_strdup((gchar *)(nt->lParam))) : nt->lParam;
-
- /* more efficient to create reverse list and reverse it at the end */
- RecordingMacro->MacroEvents=g_slist_prepend(RecordingMacro->MacroEvents,me);
-
- return FALSE;
-}
-
-
-/* convert GTK <Alt><Control><Shift>lowercase char to standard Alt+Ctrl+Shift+uppercase char
- * format resultant string needs to be freed
-*/
-static gchar *GetPretyKeyName(guint keyval,guint state)
-{
- gboolean bAlt,bCtrl,bShift;
- gchar *cTemp;
- gchar *cName;
- gchar *cPretyName;
-
- /* get basic keypress description */
- cName=gtk_accelerator_name(keyval,state);
-
- /* cName now holds the name but in the <Control><Shift>h format.
- * Pretify to Ctrl+Shift+H like in menus
- */
- bAlt=((gchar*)g_strrstr(cName,"<Alt>")!=NULL);
- bCtrl=((gchar*)g_strrstr(cName,"<Control>")!=NULL);
- bShift=((gchar*)g_strrstr(cName,"<Shift>")!=NULL);
-
- /* find out where the modifyer key description ends. */
- cTemp=g_strrstr(cName,">");
- /* if there are no modifyers then point to start of string */
- if(cTemp==NULL)
- cTemp=cName;
- else
- cTemp++;
-
- /* put string back together but pretier */
- cPretyName=g_strdup_printf("%s%s%s%c%s",(bShift?"Shift+":""),(bCtrl?"Ctrl+":""),
- (bAlt?"Alt+":""),g_ascii_toupper(cTemp[0]),
- &(g_ascii_strdown(cTemp,-1)[1]));
-
- /* tidy up */
- g_free(cName);
-
- /* return pretified name */
- return cPretyName;
-}
-
-
-/* return a FileData structure for a file
- * if not come across this file before then create one, otherwise return existing structure with
- * data in it
- * returns NULL on error
-*/
-static FileData * GetFileData(gchar *pcFileName)
-{
- FileData *fdTemp=fdKnownFilesSettings;
- gint i;
-
- /* First handle if main pointer doesn't point to anything */
- if(fdTemp==NULL)
- {
- if((fdKnownFilesSettings=(FileData*)(g_malloc(sizeof *fdTemp)))!=NULL)
- {
- fdKnownFilesSettings->pcFileName=g_strdup(pcFileName);
- for(i=0;i<10;i++)
- fdKnownFilesSettings->iBookmark[i]=-1;
-
- fdKnownFilesSettings->pcFolding=NULL;
- fdKnownFilesSettings->LastChangedTime=-1;
- fdKnownFilesSettings->NextNode=NULL;
- }
- return fdKnownFilesSettings;
- }
-
- /* move through chain to the correct entry or the end of a chain */
- while(TRUE)
- {
- /* if have found relavent FileData, then exit */
- if(utils_str_equal(pcFileName,fdTemp->pcFileName)==TRUE)
- return fdTemp;
-
- /* if end of chain, then add new entry, and return it. */
- if(fdTemp->NextNode==NULL)
- {
- if((fdTemp->NextNode=(FileData*)(g_malloc(sizeof *fdTemp)))!=NULL)
- {
- fdTemp->NextNode->pcFileName=g_strdup(pcFileName);
- for(i=0;i<10;i++)
- fdTemp->NextNode->iBookmark[i]=-1;
-
- fdTemp->NextNode->pcFolding=NULL;
- fdTemp->NextNode->LastChangedTime=-1;
- fdTemp->NextNode->NextNode=NULL;
- }
- return fdTemp->NextNode;
-
- }
- fdTemp=fdTemp->NextNode;
-
- }
-}
-
-
-/* save settings (preferences, file data such as fold states, marker positions, and macro data) */
-static void SaveSettings(void)
-{
- GKeyFile *config = NULL;
- gchar *config_file = NULL;
- gchar *data;
- gint iFiles=0;
- FileData* fdTemp=fdKnownFilesSettings;
- gchar *cKey;
- gchar szMarkers[1000];
- gchar *pszMarkers;
- gchar *pcTemp;
- gint i,k;
- GSList *gsl=mList;
- GSList *gslTemp;
- gchar **pszMacroStrings;
- Macro *m;
-
- /* create new config from default settings */
- config=g_key_file_new();
-
- /* now set settings */
- g_key_file_set_boolean(config,"Settings","Center_When_Goto_Bookmark",bCenterWhenGotoBookmark);
- g_key_file_set_boolean(config,"Settings","Remember_Folds",bRememberFolds);
- g_key_file_set_boolean(config,"Settings","Save_Macros",bSaveMacros);
- g_key_file_set_boolean(config,"Settings","Question_Macro_Overwrite",bQueryOverwriteMacros);
-
- /* now save file data */
- while(fdTemp!=NULL)
- {
- cKey=g_strdup_printf("A%d",iFiles);
- /* save filename */
- g_key_file_set_string(config,"FileData",cKey,fdTemp->pcFileName);
- /* save folding data */
- cKey[0]='B';
- if(NZV(fdTemp->pcFolding))
- g_key_file_set_string(config,"FileData",cKey,fdTemp->pcFolding);
-
- /* save last saved time */
- cKey[0]='C';
- g_key_file_set_integer(config,"FileData",cKey,fdTemp->LastChangedTime);
- /* save bookmarks */
- cKey[0]='D';
- pszMarkers=szMarkers;
- pszMarkers[0]=0;
- for(i=0;i<10;i++)
- {
- if(fdTemp->iBookmark[i]!=-1)
- {
- sprintf(pszMarkers,"%d",fdTemp->iBookmark[i]);
- while(pszMarkers[0]!=0)
- pszMarkers++;
- }
-
- pszMarkers[0]=',';
- pszMarkers[1]=0;
- pszMarkers++;
- }
- /* don't need a ',' after last position (have '\0' instead) */
- pszMarkers--;
- pszMarkers[0]=0;
- g_key_file_set_string(config,"FileData",cKey,szMarkers);
-
- g_free(cKey);
-
- /* point to next FileData entry or NULL if end of chain */
- iFiles++;
- fdTemp=fdTemp->NextNode;
- }
- /* Record the number of file entries */
- g_key_file_set_integer(config,"Settings","Number_of_files",iFiles);
-
- /* now save macros */
- if(bSaveMacros==TRUE)
- {
- i=0;
-
- /* iterate through macros and save them */
- while(gsl!=NULL)
- {
- m=(Macro*)(gsl->data);
- cKey=g_strdup_printf("A%d",i);
-
- /* save macro name */
- pcTemp=MakeStringSaveable(m->name);
- g_key_file_set_string(config,"Macros",cKey,pcTemp);
- g_free(pcTemp);
- /* save trigger data */
- cKey[0]='B';
- g_key_file_set_integer(config,"Macros",cKey,m->keyval);
- cKey[0]='C';
- g_key_file_set_integer(config,"Macros",cKey,m->state);
- /* convert macros to saveable format
- * first generate list of all macrodetails
- */
- pszMacroStrings=(gchar **)
- (g_malloc(sizeof(gchar *)*(g_slist_length(m->MacroEvents)+1)));
- gslTemp=m->MacroEvents;
- k=0;
- while(gslTemp!=NULL)
- {
- pszMacroStrings[k++]=MacroEventToString((MacroEvent*)(gslTemp->data));
- gslTemp=g_slist_next(gslTemp);
- }
-
- /* null terminate array for g_strfreev to work */
- pszMacroStrings[k]=NULL;
- /* now transfer to single string */
- pcTemp=g_strjoinv(",",pszMacroStrings);
- /* save data */
- cKey[0]='D';
- g_key_file_set_string(config,"Macros",cKey,pcTemp);
- /* free up memory */
- g_free(pcTemp);
- g_strfreev(pszMacroStrings);
- g_free(cKey);
-
- /* move to next macro */
- i++;
- gsl=g_slist_next(gsl);
- }
- }
-
- /* turn config into data */
- data=g_key_file_to_data(config,NULL,NULL);
-
- /* calculate setting directory name */
- config_file=g_build_filename(geany->app->configdir,"plugins","ConText_Feature_Parity",NULL);
- /* ensure directory exists */
- g_mkdir_with_parents(config_file,0755);
-
- /* make config_file hold name of settings file */
- setptr(config_file,g_build_filename(config_file,"settings.conf",NULL));
-
- /* write data */
- utils_write_file(config_file, data);
-
- /* free memory */
- g_free(config_file);
- g_key_file_free(config);
- g_free(data);
-
- /* Macros have now been saved */
- bMacrosHaveChanged=FALSE;
-}
-
-
-/* load settings (preferences, file data, and macro data) */
-static void LoadSettings(void)
-{
- gchar *pcTemp;
- gchar *pcKey;
- gint i,k,l;
- gchar *config_file=NULL;
- GKeyFile *config=NULL;
- FileData *fdTemp;
- Macro *m;
- gchar **pcMacroCommands;
-
- /* Make config_file hold directory name of settings file */
- config_file=g_build_filename(geany->app->configdir,"plugins","ConText_Feature_Parity",NULL);
- /* ensure directory exists */
- g_mkdir_with_parents(config_file,0755);
-
- /* make config_file hold name of settings file */
- setptr(config_file,g_build_filename(config_file,"settings.conf",NULL));
-
- /* either load settings file, or create one from default */
- config=g_key_file_new();
- if(!g_key_file_load_from_file(config,config_file, G_KEY_FILE_KEEP_COMMENTS,NULL))
- g_key_file_load_from_data(config,default_config,sizeof(default_config),
- G_KEY_FILE_KEEP_COMMENTS,NULL);
-
- /* extract settings */
- bCenterWhenGotoBookmark=utils_get_setting_boolean(config,"Settings",
- "Center_When_Goto_Bookmark",FALSE);
- bRememberFolds=utils_get_setting_boolean(config,"Settings","Remember_Folds",FALSE);
- bQueryOverwriteMacros=utils_get_setting_boolean(config,"Settings",
- "Question_Macro_Overwrite",FALSE);
- bSaveMacros=utils_get_setting_boolean(config,"Settings","Save_Macros",FALSE);
-
- /* extract data about files */
- k=utils_get_setting_integer(config,"Settings","Number_of_files",0);
- if(k!=0) for(i=0;i<k;i++)
- {
- pcKey=g_strdup_printf("A%d",i);
- /* get filename */
- pcTemp=(gchar*)(utils_get_setting_string(config,"FileData",pcKey,NULL));
- if(pcTemp==NULL)
- {
- g_free(pcKey);
- continue;
- }
-
- fdTemp=GetFileData(pcTemp);
- /* get folding data */
- pcKey[0]='B';
- fdTemp->pcFolding=(gchar*)(utils_get_setting_string(config,"FileData",pcKey,NULL));
- /* load last saved time */
- pcKey[0]='C';
- fdTemp->LastChangedTime=utils_get_setting_integer(config,"FileData",pcKey,-1);
- /* get bookmarks */
- pcKey[0]='D';
- pcTemp=(gchar*)(utils_get_setting_string(config,"FileData",pcKey,NULL));
- g_free(pcKey);
- /* pcTemp contains comma seperated numbers (or blank for -1) */
- pcKey=pcTemp;
- if(pcTemp!=NULL) for(l=0;l<10;l++)
- {
- /* Bookmark entries are initialized to -1, so only need to parse non-empty slots */
- if(pcKey[0]!=',' && pcKey[0]!=0)
- {
- fdTemp->iBookmark[l]=strtoll(pcKey,NULL,10);
- while(pcKey[0]!=0 && pcKey[0]!=',')
- pcKey++;
- }
-
- pcKey++;
- }
- g_free(pcTemp);
- }
-
- /* extract macros */
- i=0;
- while(TRUE)
- {
- pcKey=g_strdup_printf("A%d",i);
- i++;
- /* get macro name */
- pcTemp=(gchar*)(utils_get_setting_string(config,"Macros",pcKey,NULL));
- /* if null then have reached end of macros */
- if(pcTemp==NULL)
- {
- g_free(pcKey);
- break;
- }
-
- m=CreateMacro();
- m->name=pcTemp;
- /* load triggers */
- pcKey[0]='B';
- m->keyval=utils_get_setting_integer(config,"Macros",pcKey,0);
- pcKey[0]='C';
- m->state=utils_get_setting_integer(config,"Macros",pcKey,0);
- /* Load macro list */
- pcKey[0]='D';
- pcTemp=(gchar*)(utils_get_setting_string(config,"Macros",pcKey,NULL));
- g_free(pcKey);
- /* break into individual macro data */
- pcMacroCommands=g_strsplit(pcTemp,",",0);
- /* can now free up pcTemp */
- g_free(pcTemp);
- /* now go through macro data generating macros */
- for(k=0,m->MacroEvents=NULL;pcMacroCommands[k]!=NULL;)
- m->MacroEvents=g_slist_prepend(m->MacroEvents,GetMacroEventFromString(pcMacroCommands,
- &k));
- /* list created in reverse as more efficient, now turn it around */
- m->MacroEvents=g_slist_reverse(m->MacroEvents);
- /* macro now complete, add it to the list */
- AddMacroToList(m);
- /* free up memory used by pcMacroCommands */
- g_strfreev(pcMacroCommands);
- }
-
- /* free memory */
- g_free(config_file);
- g_key_file_free(config);
-}
-
-
-/* Define Markers for an editor */
-static void DefineMarkers(ScintillaObject* sci)
-{
- gint i;
- for(i=0;i<10;i++)
- scintilla_send_message(sci,SCI_MARKERDEFINEPIXMAP,i+BOOKMARK_BASE,
- (glong)(aszMarkerImages[i]));
-}
-
-
-/* Make sure that have setup markers if not come across this particular editor
- * Keep track of editors we've encountered and set markers for
-*/
-static void CheckEditorSetup(void)
-{
- SCIPOINTERHOLDER *sciTemp;
- ScintillaObject* sci=document_get_current()->editor->sci;
-
- /* no recorded editors so make note of editor */
- if(sciList==NULL)
- {
- if((sciList=(SCIPOINTERHOLDER *)(g_malloc(sizeof *sciTemp)))!=NULL)
- {
- sciList->sci=sci;
- sciList->NextNode=NULL;
- DefineMarkers(sci);
- }
-
- return;
- }
-
- sciTemp=sciList;
- while(sciTemp->NextNode!=NULL)
- {
- /* if have come across this editor before, then it will have had it's markers set and we
- * don't need to do any more
- */
- if(sciTemp->sci==sci)
- return;
-
- sciTemp=sciTemp->NextNode;
- }
- /* if have come across this editor before, then it will have had it's markers set and we don't
- * need to do any more
- */
- if(sciTemp->sci==sci)
- return;
-
- /* not come across this editor */
- if((sciTemp->NextNode=g_malloc(sizeof *sciTemp->NextNode))!=NULL)
- {
- sciTemp->NextNode->sci=sci;
- sciTemp->NextNode->NextNode=NULL;
- DefineMarkers(sci);
- }
-}
-
-
-/* handler for when a document has been opened
- * this checks to see if a document has been altered since it was last saved in geany (as plugin
- * data may then be out of date for file)
- * It then applies file settings
-*/
-static void on_document_open(GObject *obj, GeanyDocument *doc, gpointer user_data)
-{
- FileData *fd;
- gint i,l=GTK_RESPONSE_ACCEPT,iLineCount;
- ScintillaObject* sci=doc->editor->sci;
- struct stat sBuf;
- GtkWidget *dialog;
- gchar *cFoldData=NULL;
- gint iBits,iFlags,iBitCounter;
-
- /* ensure have markers set */
- CheckEditorSetup();
- DefineMarkers(sci);
-
- /* check to see if file has changed since geany last saved it */
- fd=GetFileData(doc->file_name);
- if(stat(doc->file_name,&sBuf)==0 && fd!=NULL && fd->LastChangedTime!=-1 &&
- fd->LastChangedTime!=sBuf.st_mtime)
- {
- /* notify user that file has been changed */
- dialog=gtk_message_dialog_new(GTK_WINDOW(geany->main_widgets->window),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_ERROR,
- GTK_BUTTONS_NONE,
- _("'%s' has been edited since it was last saved by geany. Marker positions may \
-be unreliable and will not be loaded.\nPress Ignore to try an load markers anyway."),
- doc->file_name);
- gtk_dialog_add_button(GTK_DIALOG(dialog),_("_Okay"),GTK_RESPONSE_OK);
- gtk_dialog_add_button(GTK_DIALOG(dialog),_("_Ignore"),GTK_RESPONSE_REJECT);
- l=gtk_dialog_run(GTK_DIALOG(dialog));
- gtk_widget_destroy(dialog);
- }
-
- switch(l)
- {
- /* file not changed since Geany last saved it so saved settings should be fine */
- case GTK_RESPONSE_ACCEPT:
- /* now set markers */
- for(i=0;i<10;i++)
- if(fd->iBookmark[i]!=-1)
- scintilla_send_message(sci,SCI_MARKERADD,fd->iBookmark[i],i+BOOKMARK_BASE);
-
- /* get fold settings if present and want to use them */
- if(fd->pcFolding==NULL || bRememberFolds==FALSE)
- break;
-
- cFoldData=fd->pcFolding;
-
- /* first ensure fold positions exist */
- scintilla_send_message(sci,SCI_COLOURISE,0,-1);
-
- iLineCount=scintilla_send_message(sci,SCI_GETLINECOUNT,0,0);
-
- /* go through lines setting fold status */
- for(i=0,iBitCounter=6;i<iLineCount;i++)
- {
- iFlags=scintilla_send_message(sci,SCI_GETFOLDLEVEL,i,0);
- /* ignore non-folding lines */
- if((iFlags & SC_FOLDLEVELHEADERFLAG)==0)
- continue;
-
- /* get next 6 fold states if needed */
- if(iBitCounter==6)
- {
- iBitCounter=0;
- iBits=base64_char_to_int[(gint)(*cFoldData)];
- cFoldData++;
- }
-
- /* set fold if needed */
- if(((iBits>>iBitCounter)&1)==0)
- scintilla_send_message(sci,SCI_TOGGLEFOLD,i,0);
-
- /* increment counter */
- iBitCounter++;
- }
-
- break;
- /* file has changed since Geany last saved but, try to load bookmarks anyway */
- case GTK_RESPONSE_REJECT:
- iLineCount=scintilla_send_message(sci,SCI_GETLINECOUNT,0,0);
- for(i=0;i<10;i++)
- if(fd->iBookmark[i]!=-1 && fd->iBookmark[i]<iLineCount)
- scintilla_send_message(sci,SCI_MARKERADD,fd->iBookmark[i],i);
-
- break;
- default: /* default - don't try to set markers */
- break;
- }
-}
-
-
-/* handler for when a document has been saved
- * This saves off fold state, and marker positions for the file
-*/
-static void on_document_save(GObject *obj, GeanyDocument *doc, gpointer user_data)
-{
- FileData *fdTemp;
- gint i,iLineCount,iFlags,iBitCounter=0;
- ScintillaObject* sci=doc->editor->sci;
- struct stat sBuf;
- GByteArray *gbaFoldData=g_byte_array_sized_new(1000);
- guint8 guiFold=0;
-
- /* update markerpos */
- fdTemp=GetFileData(doc->file_name);
- for(i=0;i<10;i++)
- fdTemp->iBookmark[i]=scintilla_send_message(sci,SCI_MARKERNEXT,0,1<<(i+BOOKMARK_BASE));
-
- /* update fold state */
- iLineCount=scintilla_send_message(sci,SCI_GETLINECOUNT,0,0);
- /* go through each line */
- for(i=0;i<iLineCount;i++)
- {
- iFlags=scintilla_send_message(sci,SCI_GETFOLDLEVEL,i,0);
- /* ignore line if not a folding point */
- if((iFlags & SC_FOLDLEVELHEADERFLAG)==0)
- continue;
-
- iFlags=scintilla_send_message(sci,SCI_GETFOLDEXPANDED,i,0);
- /* remember if folded or not */
- guiFold|=(iFlags&1)<<iBitCounter;
- iBitCounter++;
- if(iBitCounter<6)
- continue;
-
- /* if have 6 bits then store these */
- iBitCounter=0;
- guiFold=(guint8)base64_int_to_char[guiFold];
- g_byte_array_append(gbaFoldData,&guiFold,1);
- guiFold=0;
- }
-
- /* flush buffer */
- if(iBitCounter!=0)
- {
- guiFold=(guint8)base64_int_to_char[guiFold];
- g_byte_array_append(gbaFoldData,&guiFold,1);
- }
-
- /* transfer data to text string */
- fdTemp->pcFolding=g_strndup((gchar*)(gbaFoldData->data),gbaFoldData->len);
-
- /* free byte array space */
- g_byte_array_free(gbaFoldData,TRUE);
-
- /* make note of time last saved */
- if(stat(doc->file_name,&sBuf)==0)
- fdTemp->LastChangedTime=sBuf.st_mtime;
-
- /* save settings */
- SaveSettings();
-}
-
-
-PluginCallback plugin_callbacks[] =
-{
- { "document-open", (GCallback) &on_document_open, FALSE, NULL },
- { "document-save", (GCallback) &on_document_save, FALSE, NULL },
- { "editor-notify", (GCallback) &Notification_Handler, FALSE, NULL },
- { NULL, NULL, FALSE, NULL }
-};
-
-/* returns current line number */
-static gint GetLine(ScintillaObject* sci)
-{
- return scintilla_send_message(sci,SCI_LINEFROMPOSITION,
- scintilla_send_message(sci,SCI_GETCURRENTPOS,10,0),0);
-}
-
-
-/* handle button presses in the preferences dialog box */
-static void on_configure_response(GtkDialog *dialog, gint response, gpointer user_data)
-{
- gboolean bSettingsHaveChanged;
- GtkCheckButton *cb1,*cb2,*cb3,*cb4;
-
- if(response!=GTK_RESPONSE_OK && response!=GTK_RESPONSE_APPLY)
- return;
-
- /* retreive pointers to check boxes */
- cb1=(GtkCheckButton*)(g_object_get_data(G_OBJECT(dialog),"CFLP_cb1"));
- cb2=(GtkCheckButton*)(g_object_get_data(G_OBJECT(dialog),"CFLP_cb2"));
- cb3=(GtkCheckButton*)(g_object_get_data(G_OBJECT(dialog),"CFLP_cb3"));
- cb4=(GtkCheckButton*)(g_object_get_data(G_OBJECT(dialog),"CFLP_cb4"));
-
- /* first see if settings are going to change */
- bSettingsHaveChanged=(bRememberFolds!=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cb1)));
- bSettingsHaveChanged|=(bCenterWhenGotoBookmark!=gtk_toggle_button_get_active(
- GTK_TOGGLE_BUTTON(cb2)));
- bSaveMacros|=(bCenterWhenGotoBookmark!=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cb3)));
- bQueryOverwriteMacros|=(bCenterWhenGotoBookmark!=gtk_toggle_button_get_active(
- GTK_TOGGLE_BUTTON(cb4)));
-
- /* set new settings settings */
- bRememberFolds=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cb1));
- bCenterWhenGotoBookmark=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cb2));
- bSaveMacros=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cb3));
- bQueryOverwriteMacros=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cb4));
-
- /* now save new settings if they have changed */
- if(bSettingsHaveChanged)
- SaveSettings();
-}
-
-
-/* return a widget containing settings for plugin that can be changed */
-GtkWidget *plugin_configure(GtkDialog *dialog)
-{
- GtkWidget *vbox;
- GtkWidget *cb1,*cb2,*cb3,*cb4;
-
- vbox=gtk_vbox_new(FALSE, 6);
-
- cb1=gtk_check_button_new_with_label(_("remember fold state"));
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb1),bRememberFolds);
- gtk_box_pack_start(GTK_BOX(vbox),cb1,FALSE,FALSE,2);
- /* save pointer to check_button */
- g_object_set_data(G_OBJECT(dialog),"CFLP_cb1",cb1);
-
- cb2=gtk_check_button_new_with_label(_("Center view when goto bookmark"));
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb2),bCenterWhenGotoBookmark);
- gtk_box_pack_start(GTK_BOX(vbox),cb2,FALSE,FALSE,2);
- /* save pointer to check_button */
- g_object_set_data(G_OBJECT(dialog),"CFLP_cb2",cb2);
-
- cb3=gtk_check_button_new_with_label(_("Save Macros when close Geany"));
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb3),bSaveMacros);
- gtk_box_pack_start(GTK_BOX(vbox),cb3,FALSE,FALSE,2);
- /* save pointer to check_button */
- g_object_set_data(G_OBJECT(dialog),"CFLP_cb3",cb3);
-
- cb4=gtk_check_button_new_with_label(_("Ask before replaceing existing Macros"));
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb4),bQueryOverwriteMacros);
- gtk_box_pack_start(GTK_BOX(vbox),cb4,FALSE,FALSE,2);
- /* save pointer to check_button */
- g_object_set_data(G_OBJECT(dialog),"CFLP_cb4",cb4);
-
- gtk_widget_show_all(vbox);
-
- g_signal_connect(dialog,"response",G_CALLBACK(on_configure_response),NULL);
-
- return vbox;
-}
-
-
-/* display help box */
-void plugin_help(void)
-{
- GtkWidget *dialog,*label,*scroll;
-
- /* create dialog box */
- dialog=gtk_dialog_new_with_buttons(_("ConTEXT feature parity help"),
- GTK_WINDOW(geany->main_widgets->window),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_STOCK_OK,GTK_RESPONSE_ACCEPT,
- NULL);
-
- /* create label */
- label=gtk_label_new(
- _("This Plugin implements two useful features.\n\n"
- "Firstly it allows you to use 10 numbered bookmarks. Normaly if you had more than one \
-bookmark, you would have to cycle through them until you reached the one you wanted. With this \
-plugin you can go straight to the bookmark that you want with a single key combination. To set a \
-numbered bookmark press Ctrl+Shift+a number from 0 to 9. You will see a marker apear next to the \
-line number. If you press Ctrl+Shift+a number on a line that already has that bookmark number then\
- it removes the bookmark, otherwise it will move the bookmark there if it was set on a different \
-line, or create it if it had not already been set. Only the bookmark with the highest number on a \
-line will be shown, but you can have more than one bookmark per line. This plugin does not \
-interfer with regular bookmarks. When a file is saved, Geany will remember the numbered bookmarks \
-and make sure that they are set the next time you open the file.\n\n"
- "Secondly this plugin alows you to record and use your own macros. These are sequences of \
-actions that can then be repeated with a single key combination. So if you had dozens of lines \
-where you wanted to delete the last 2 characters, you could simple start recording, press End, \
-Backspace, Backspace, down line and then stop recording. Then simply trigger the macro and it \
-would automaticaly edit the line and move to the next. Select Record Macro from the Tools menu \
-and you will be prompted with a dialog box. You need to specify a key combination that isn't being\
- used, and a name for the macro to help you identify it. Then press Record. What you do in the \
-editor is then recorded until you select Stop Recording Macro from the Tools menu. Simply pressing\
- the specified key combination will re-run the macro. To edit the macros you have select Edit \
-Macro from the Tools menu. You can select a macro and delete it, or re-record it. You can also \
-click on a macro's name and change it, or the key combination and re-define that asuming that it's\
- not already in use.\n\n"
- "You can alter the default behaviur of this plugin by selecting Plugin Manager under the \
-Tools menu, selecting this plugin, and cliking Preferences. You can change:\nRemember fold state -\
- if this is set then this plugin will remember the state of any folds along with the numbered \
-bookmarks and set them when the file is next loaded.\nCenter view when goto bookmark - If this is \
-set it will try to make sure that the numbered bookmark that you are going to is in the center of \
-the screen, otherwise it will simply be on the screen somewhere.\nSave Macros when close Geany - \
-If this is selected then Geany will save any recorded macros and reload them for use the next time\
- you open Geany, if not they will be lost when Geany is closed.\nAsk before replaceing existing \
-Macros - If this is selected then if you try recording a macro over an existing one it will check \
-before over-writing it, giving you the option of trying a different name or key trigger \
-combination, otherwise it will simply erase any existing macros with the same name, or the same \
-key trigger combination."));
- gtk_label_set_line_wrap(GTK_LABEL(label),TRUE);
- gtk_widget_show(label);
-
- /* create scrolled window to display label */
- scroll=gtk_scrolled_window_new(NULL,NULL);
- gtk_scrolled_window_set_policy((GtkScrolledWindow*)scroll,GTK_POLICY_NEVER,
- GTK_POLICY_AUTOMATIC);
- gtk_scrolled_window_add_with_viewport((GtkScrolledWindow*)scroll,label);
-
- gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox),scroll);
- gtk_widget_show(scroll);
-
- /* set dialog size (leave width default) */
- gtk_widget_set_size_request(dialog,-1,300);
-
- /* display the dialog */
- gtk_dialog_run(GTK_DIALOG(dialog));
- gtk_widget_destroy(dialog);
-}
-
-
-/* goto numbered bookmark */
-static void GotoBookMark(gint iBookMark)
-{
- gint iLine,iLinesVisible,iLineCount;
- ScintillaObject* sci=document_get_current()->editor->sci;
-
- iLine=scintilla_send_message(sci,SCI_MARKERNEXT,0,1<<(iBookMark+BOOKMARK_BASE));
-
- /* ignore if no marker placed for requested bookmark */
- if(iLine==-1)
- return;
-
- /* move to bookmark */
- scintilla_send_message(sci,SCI_GOTOLINE,iLine,0);
-
- if(bCenterWhenGotoBookmark==FALSE)
- return;
-
- /* try and center bookmark on screen */
- iLinesVisible=scintilla_send_message(sci,SCI_LINESONSCREEN,0,0);
- iLineCount=scintilla_send_message(sci,SCI_GETLINECOUNT,0,0);
- iLine-=iLinesVisible/2;
- /* make sure view is not beyond start or end of document */
- if(iLine+iLinesVisible>iLineCount)
- iLine=iLineCount-iLinesVisible;
- if(iLine<0)
- iLine=0;
-
- scintilla_send_message(sci,SCI_SETFIRSTVISIBLELINE,iLine,0);
-}
-
-
-/* set (or remove) numbered bookmark */
-static void SetBookMark(gint iBookMark)
-{
- gint iNewLine,iOldLine;
- ScintillaObject* sci=document_get_current()->editor->sci;
-
- /* see if already such a bookmark present */
- iOldLine=scintilla_send_message(sci,SCI_MARKERNEXT,0,1<<(iBookMark+BOOKMARK_BASE));
- iNewLine=GetLine(sci);
- /* if no marker then simply add one to current line */
- if(iOldLine==-1)
- {
- CheckEditorSetup();
- scintilla_send_message(sci,SCI_MARKERADD,iNewLine,iBookMark+BOOKMARK_BASE);
- }
- /* else either have to remove marker from current line, or move it to current line */
- else
- {
- /* remove old marker */
- scintilla_send_message(sci,SCI_MARKERDELETEALL,iBookMark+BOOKMARK_BASE,0);
- /* add new marker if moving marker */
- if(iOldLine!=iNewLine) scintilla_send_message(sci,SCI_MARKERADD,iNewLine,iBookMark+BOOKMARK_BASE);
- }
-}
-
-
-/* handle key press
- * used to see if macro is being triggered and to control numbered bookmarks
-*/
-static gboolean Key_Released_CallBack(GtkWidget *widget, GdkEventKey *ev, gpointer data)
-{
- GeanyDocument *doc;
- gint i;
- Macro *m;
-
- m=FindMacroByKey(ev->keyval,ev->state);
-
- /* if it's a macro trigger then run macro */
- if(m!=NULL)
- {
- ReplayMacro(m);
-/* ?is this needed */
-/* g_signal_stop_emission_by_name((GObject *)widget,"key-release-event"); */
- return TRUE;
- }
-
- doc=document_get_current();
- if(doc==NULL)
- return FALSE;
-
- if(ev->type!=GDK_KEY_RELEASE)
- return FALSE;
-
- /* control and number pressed */
- if(ev->state==4)
- {
- i=((gint)(ev->keyval))-'0';
- if(i<0 || i>9)
- return FALSE;
-
- GotoBookMark(i);
- return TRUE;
- }
- /* control+shift+number */
- if(ev->state==5) {
- /* could use hardware keycode instead of keyvals but if unable to get keyode then don't
- * have logical default to fall back on
- */
- for(i=0;i<10;i++) if((gint)(ev->keyval)==iShiftNumbers[i])
- {
- SetBookMark(i);
- return TRUE;
- }
-
- }
- return FALSE;
-}
-
-
-/* return TRUE if this key combination is not bing used by anything else (and so can be used by
- * this plugin as a macro trigger)
-*/
-static gboolean UseableAccel(guint key,guint mod)
-{
- gint i,k;
- guint u,t;
- GSList *gsl;
-
- /* check if in use by accelerator groups */
- gsl=gtk_accel_groups_from_object((GObject*)geany->main_widgets->window);
- /* loop through all the accelerator groups until we either find one that matches the key (k!=0)
- * or we don't (k==0)
- */
- for(u=0,k=0;u<g_slist_length(gsl);u++)
- {
- gtk_accel_group_query((GtkAccelGroup*)((g_slist_nth(gsl,u))->data),key,mod,&t);
- if(t!=0)
- return FALSE; /* combination in use so don't accept as macro trigger */
- }
-
- /* now check to see if numbered bookmark key is atempted
- *
- * control and number pressed
- */
- if(mod==4)
- {
- i=((gint)key)-'0';
- if(i>=0 && i<=9)
- return FALSE;
- }
-
- /* control+shift+number */
- if(mod==5)
- {
- /* could use hardware keycode instead of keyvals but if unable to get keyode then don't
- * have a logical default to fall back on
- */
- for(i=0;i<10;i++) if((gint)key==iShiftNumbers[i])
- return FALSE;
- }
-
- /* there are a lot of unmodified keys, and shift+key combinations in use by the editor.
- * Rather than list them all individually that the editor uses, ban all except the
- * shift+function keys
- */
- if(mod==1 || mod==0)
- {
- if(key<GDK_F1 || key>GDK_F35)
- return FALSE;
- }
-
- /* there are a several control keys that could be pressed but should not be used on their own
- * check for them
- */
- if(key==GDK_Shift_L || key==GDK_Shift_R || key==GDK_Control_L || key==GDK_Control_R ||
- key==GDK_Caps_Lock || key==GDK_Shift_Lock || key==GDK_Meta_L || key==GDK_Meta_R ||
- key==GDK_Alt_L || key==GDK_Alt_R || key==GDK_Super_L || key==GDK_Super_R ||
- key==GDK_Hyper_L || key==GDK_Hyper_R)
- return FALSE;
-
- /* ctrl+M is used by normal bookmarks */
- if(mod==4 && key=='m')
- return FALSE;
-
- /* now should have a valid keyval/state combination */
- return TRUE;
-}
-
-
-/* handle changes to an Entry dialog so that it handles accelerator key combinations */
-static gboolean Entry_Key_Pressed_CallBack(GtkWidget *widget, GdkEventKey *ev, gpointer data)
-{
- gchar *cName;
-
- /* make sure that tab is handled by regular handler to ensure can tab through entry boxes and
- * buttons
- */
- if((ev->state==0 || ev->state==1) && ev->keyval==GDK_Tab)
- return FALSE;
-
- /* first see if key combination is valid for use in macros */
- if(UseableAccel(ev->keyval,ev->state)==FALSE)
- return TRUE;
-
- cName=GetPretyKeyName(ev->keyval,ev->state);
- /* set text in entry */
- gtk_entry_set_text((GtkEntry*)widget,cName);
-
- /* tidy up memory */
- g_free(cName);
-
- /* make note of keys pressed */
- RecordingMacro->keyval=ev->keyval;
- RecordingMacro->state=ev->state;
-
- return TRUE;
-}
-
-
-/* display dialog and handle the gathering of data prior to recording a macro */
-static gboolean InitializeMacroRecord(void)
-{
- GtkWidget *dialog,*gtke,*gtke2,*hbox,*gtkl;
- gint iReply=GTK_RESPONSE_OK;
- Macro *m;
- gboolean bReplaceName,bReplaceTrigger;
-
- /* ensure have empty recording macro */
- FreeMacro(RecordingMacro);
- RecordingMacro=CreateMacro();
- /* set with default values */
- RecordingMacro->keyval=0;
- RecordingMacro->state=0;
-
- /* create dialog box */
- dialog=gtk_dialog_new();
- gtk_window_set_title(GTK_WINDOW(dialog),_("Record Macro"));
-
- /* create buttons */
- gtk_dialog_add_button(GTK_DIALOG(dialog),_("Record"),GTK_RESPONSE_OK);
- gtk_dialog_add_button(GTK_DIALOG(dialog),_("Cancel"),GTK_RESPONSE_CANCEL);
-
- /* create box to hold macro trigger entry box and label */
- hbox=gtk_hbox_new(FALSE,0);
- gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox),hbox);
- gtk_widget_show(hbox);
-
- gtkl=gtk_label_new(_("Macro Trigger:"));
- gtk_box_pack_start(GTK_BOX(hbox),gtkl,FALSE,FALSE,2);
- gtk_widget_show(gtkl);
-
- gtke=gtk_entry_new();
- g_signal_connect(gtke,"key-press-event",G_CALLBACK(Entry_Key_Pressed_CallBack),NULL);
- gtk_box_pack_start(GTK_BOX(hbox),gtke,FALSE,FALSE,2);
- gtk_widget_show(gtke);
-
- /* create box to hold macro name entry box, and label */
- hbox=gtk_hbox_new(FALSE,0);
- gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox),hbox);
- gtk_widget_show(hbox);
-
- gtkl=gtk_label_new(_("Macro Name:"));
- gtk_box_pack_start(GTK_BOX(hbox),gtkl,FALSE,FALSE,2);
- gtk_widget_show(gtkl);
-
- gtke2=gtk_entry_new();
- gtk_box_pack_start(GTK_BOX(hbox),gtke2,FALSE,FALSE,2);
- gtk_widget_show(gtke2);
-
- /* run dialog, and wait for box to be canceled or for user to press record.
- * Check to make sure you're not over-writing existing macro trigger or name
- */
- while(iReply==GTK_RESPONSE_OK)
- {
- iReply=gtk_dialog_run(GTK_DIALOG(dialog));
-
- if(iReply==GTK_RESPONSE_OK)
- {
- /* first check if any trigger has been defined, and don't go further until we have a
- * trigger
- */
- if(RecordingMacro->keyval==0 && RecordingMacro->state==0)
- {
- dialogs_show_msgbox(GTK_MESSAGE_INFO,
- _("You must define a key trigger combination"));
- continue;
- }
-
- bReplaceName=FALSE;
- bReplaceTrigger=FALSE;
- m=FindMacroByName((gchar*)gtk_entry_get_text((GtkEntry*)gtke2));
- /* check if macro name already exists */
- if(m!=NULL)
- {
- if(bQueryOverwriteMacros==FALSE)
- bReplaceName=TRUE;
- else
- bReplaceName=dialogs_show_question(
- _("Macro name \"%s\"\n is already in use.\nReplace?"),
- gtk_entry_get_text((GtkEntry*)gtke2));
-
- /* don't want to replace so loop back to allow user to change or cancel */
- if(bReplaceName==FALSE)
- continue;
- }
-
- /* check if trigger key combination is already used */
- m=FindMacroByKey(RecordingMacro->keyval,RecordingMacro->state);
- if(m!=NULL)
- {
- if(bQueryOverwriteMacros==FALSE)
- bReplaceTrigger=TRUE;
- else
- bReplaceTrigger=dialogs_show_question(
- _("Macro trigger \"%s\"\n is already in use.\nReplace?"),
- gtk_entry_get_text((GtkEntry*)gtke));
-
- /* don't want to replace so loop back to allow user to change or cancel */
- if(bReplaceTrigger==FALSE)
- continue;
- }
-
- /* remove old macros. By now will definately want to replace either */
- if(bReplaceName==TRUE)
- {
- m=FindMacroByName((gchar*)gtk_entry_get_text((GtkEntry*)gtke2));
- RemoveMacroFromList(m);
- FreeMacro(m);
- }
-
- if(bReplaceTrigger==TRUE)
- {
- m=FindMacroByKey(RecordingMacro->keyval,RecordingMacro->state);
- RemoveMacroFromList(m);
- FreeMacro(m);
- }
-
- /* record macro name, trigger keys already recorded */
- RecordingMacro->name=g_strdup((gchar*)gtk_entry_get_text((GtkEntry*)gtke2));
- /* break out of loop */
- break;
- }
- }
-
- /* tidy up */
- gtk_widget_destroy(dialog);
-
- /* clear macro details if not going to record a macro */
- if(iReply!=GTK_RESPONSE_OK)
- RecordingMacro=FreeMacro(RecordingMacro);
-
- return (iReply==GTK_RESPONSE_OK);
-}
-
-
-/* handle starting and stopping macro recording */
-static void DoMacroRecording(GtkMenuItem *menuitem, gpointer gdata)
-{
- if(RecordingMacro==NULL)
- {
- /* start recording process, but quit if error, or user cancels */
- if(!InitializeMacroRecord())
- return;
-
- /* start actual recording */
- scintilla_send_message(document_get_current()->editor->sci,SCI_STARTRECORD,0,0);
- gtk_widget_hide(Record_Macro_menu_item);
- gtk_widget_show(Stop_Record_Macro_menu_item);
- }
- else {
- scintilla_send_message(document_get_current()->editor->sci,SCI_STOPRECORD,0,0);
- /* Recorded in reverse as more efficient */
- RecordingMacro->MacroEvents=g_slist_reverse(RecordingMacro->MacroEvents);
- /* add macro to list */
- AddMacroToList(RecordingMacro);
- /* set ready to record new macro (don't free as macro has been saved in macrolist) */
- RecordingMacro=NULL;
- gtk_widget_show(Record_Macro_menu_item);
- gtk_widget_hide(Stop_Record_Macro_menu_item);
-
- /* Macros have been changed */
- bMacrosHaveChanged=TRUE;
- }
-}
-
-
-/* handle a change in a macro name in the edit macro dialog */
-static void Name_Render_Edited_CallBack(GtkCellRendererText *cell,gchar *iter_id,gchar *new_text,
- gpointer data)
-{
- GtkTreeView *treeview=(GtkTreeView *)data;
- GtkTreeModel *model;
- GtkTreeIter iter;
- Macro *m,*mTemp;
- GSList *gsl=mList;
-
- /* Get the iterator */
- model=gtk_tree_view_get_model(treeview);
- gtk_tree_model_get_iter_from_string(model,&iter,iter_id);
-
- /* get Macro for this line */
- gtk_tree_model_get(model,&iter,2,&m,-1);
-
- /* return if line is uneditable */
- if(m==NULL)
- return;
-
- /* now check that no other macro is using this name */
- while(gsl!=NULL)
- {
- mTemp=(Macro*)(gsl->data);
- if(mTemp!=m && strcmp(new_text,mTemp->name)==0)
- return;
-
- gsl=g_slist_next(gsl);
- }
-
- /* set new name */
- m->name=g_strdup(new_text);
-
- /* Update the model */
- gtk_list_store_set(GTK_LIST_STORE(model),&iter,0,new_text,-1);
-
- bMacrosHaveChanged=TRUE;
-}
-
-/* only allow render edit if GTK high enough version */
-#if GTK_CHECK_VERSION(2,10,0)
-/* handle a change in macro trigger accelerator key in the edit macro dialog */
-static void Accel_Render_Edited_CallBack(GtkCellRendererAccel *cell,gchar *iter_id,guint key,
- GdkModifierType mods,guint keycode,gpointer data)
-{
- gchar *cTemp;
- GtkTreeView *treeview=(GtkTreeView *)data;
- GtkTreeModel *model;
- GtkTreeIter iter;
- Macro *m,*mTemp;
- GSList *gsl=mList;
-
- /* check if is useable accelerator */
- if(UseableAccel(key,mods)==FALSE)
- return;
-
- /* Get the iterator */
- model=gtk_tree_view_get_model(treeview);
- gtk_tree_model_get_iter_from_string(model,&iter,iter_id);
-
- /* get Macro for this line */
- gtk_tree_model_get(model,&iter,2,&m,-1);
-
- /* return if line is uneditable */
- if(m==NULL)
- return;
-
- /* now check that no other macro is using this key combination */
- while(gsl!=NULL)
- {
- mTemp=(Macro*)(gsl->data);
- if(mTemp!=m && mTemp->keyval==key && mTemp->state==mods)
- return;
-
- gsl=g_slist_next(gsl);
- }
-
- /* set new trigger values */
- m->keyval=key;
- m->state=mods;
-
- /* Update the model */
- cTemp=GetPretyKeyName(key,mods);
- gtk_list_store_set(GTK_LIST_STORE(model),&iter,1,cTemp,-1);
- g_free(cTemp);
-
- bMacrosHaveChanged=TRUE;
-}
-#endif
-
-/* do editing of existing macros */
-static void DoEditMacro(GtkMenuItem *menuitem, gpointer gdata)
-{
- GtkWidget *table,*dialog;
- GtkTreeViewColumn *column;
- GtkCellRenderer *renderer;
- GtkTreeSelection *selection;
- GtkTreeIter iter;
- GtkListStore *ls;
- gint i;
- GSList *gsl=mList;
- Macro *m;
- gchar *cTemp;
- gboolean bEditable;
-
- /* create dialog box */
- dialog=gtk_dialog_new();
- gtk_window_set_title(GTK_WINDOW(dialog),_("Edit Macros"));
-
- /* create store to hold table data (3rd column holds pointer to macro or NULL if not editable)
- */
- ls=gtk_list_store_new(3,G_TYPE_STRING,G_TYPE_STRING,G_TYPE_POINTER);
-
- /* add data to store either empty line, or list of macros */
- if(gsl==NULL)
- {
- gtk_list_store_append(ls,&iter); /* Acquire an iterator */
- gtk_list_store_set(ls,&iter,0,"",1,"",2,NULL,-1);
- }
-
- while(gsl!=NULL)
- {
- gtk_list_store_append(ls,&iter); /* Acquire an iterator */
- m=(Macro*)(gsl->data);
- cTemp=GetPretyKeyName(m->keyval,m->state);
- gtk_list_store_set(ls,&iter,0,m->name,1,cTemp,2,m,-1);
- g_free(cTemp);
- gsl=g_slist_next(gsl);
- }
-
- /* create table */
- table=gtk_tree_view_new_with_model(GTK_TREE_MODEL(ls));
-/* only allow grid lines if GTK high enough version (cosmetic so no biggie if absent)*/
-#if GTK_CHECK_VERSION(2,10,0)
- gtk_tree_view_set_grid_lines(GTK_TREE_VIEW(table),GTK_TREE_VIEW_GRID_LINES_BOTH);
-#endif
-
- /* add columns */
- renderer=gtk_cell_renderer_text_new();
- column=gtk_tree_view_column_new_with_attributes(_("Macro Name"),renderer,"text",0,NULL);
- g_signal_connect(renderer,"edited",G_CALLBACK(Name_Render_Edited_CallBack),table);
- g_object_set(renderer,"editable",TRUE,NULL);
- gtk_tree_view_append_column(GTK_TREE_VIEW(table),column);
-
- renderer= gtk_cell_renderer_accel_new();
- column=gtk_tree_view_column_new_with_attributes(_("Key Trigger"),renderer,"text",1,NULL);
-/* only allow render edit if GTK high enough version. Shame to loose this function, but not the
- * end of the world. I may time permitting write my own custom renderer
-*/
-#if GTK_CHECK_VERSION(2,10,0)
- g_signal_connect(renderer,"accel-edited",G_CALLBACK(Accel_Render_Edited_CallBack),table);
- g_object_set(renderer,"editable",TRUE,NULL);
-#else
- g_object_set(renderer,"editable",FALSE,NULL);
-#endif
-
- gtk_tree_view_append_column(GTK_TREE_VIEW(table),column);
-
- /* set selection mode */
- gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(table)),
- GTK_SELECTION_SINGLE);
-
- /* add table to dialog */
- gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox),table);
- gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox),table,FALSE,FALSE,2);
- gtk_widget_show(table);
-
- /* add buttons */
- gtk_dialog_add_button(GTK_DIALOG(dialog),_("Re-Record"),GTK_RESPONSE_OK);
- gtk_dialog_add_button(GTK_DIALOG(dialog),_("Delete"),GTK_RESPONSE_REJECT);
- gtk_dialog_add_button(GTK_DIALOG(dialog),_("Cancel"),GTK_RESPONSE_CANCEL);
-
- i=GTK_RESPONSE_REJECT;
- while(i==GTK_RESPONSE_REJECT)
- {
- /* wait for button to be pressed */
- i=gtk_dialog_run(GTK_DIALOG(dialog));
-
- /* exit if not doing any action */
- if(i!=GTK_RESPONSE_OK && i!=GTK_RESPONSE_REJECT)
- break;
-
- /* find out what's been selected */
- selection=gtk_tree_view_get_selection(GTK_TREE_VIEW(table));
- /* check if line has been selected */
- if(gtk_tree_selection_get_selected(selection,NULL,&iter))
- {
- /* get macro name */
- gtk_tree_model_get(GTK_TREE_MODEL(ls),&iter,0,&cTemp,2,&bEditable,-1);
- /* handle delete macro */
- if(i==GTK_RESPONSE_REJECT && bEditable)
- {
- /* remove from table */
- gtk_list_store_remove(GTK_LIST_STORE(ls),&iter);
- /* remove macro */
- m=FindMacroByName(cTemp);
- RemoveMacroFromList(m);
- FreeMacro(m);
- /* Signal that macros have changed (and need to be saved) */
- bMacrosHaveChanged=TRUE;
- }
-
- /* handle re-record macro */
- if(i==GTK_RESPONSE_OK && bEditable)
- {
- m=FindMacroByName(cTemp);
- /* ensure have empty recording macro */
- FreeMacro(RecordingMacro);
- RecordingMacro=CreateMacro();
- /* set values */
- RecordingMacro->keyval=m->keyval;
- RecordingMacro->state=m->state;
- RecordingMacro->name=g_strdup(m->name);
- /* remove existing macro (so newly recorded one takes it's place) */
- RemoveMacroFromList(m);
- FreeMacro(m);
- /* start actual recording */
- scintilla_send_message(document_get_current()->editor->sci,SCI_STARTRECORD,0,0);
- gtk_widget_hide(Record_Macro_menu_item);
- gtk_widget_show(Stop_Record_Macro_menu_item);
- }
-
- /* free memory */
- g_free(cTemp);
- }
-
- }
-
- gtk_widget_destroy(dialog);
-}
-
-
-/* set up this plugin */
-void plugin_init(GeanyData *data)
-{
- gint i,k,iResults=0;
- GdkKeymapKey *gdkkmkResults;
-
- /* Load settings */
- LoadSettings();
-
- /* Calculate what shift '0' to '9 will be (£ is above 3 on uk keyboard, but it's # or ~ on us
- * keyboard.)
- * there must be an easier way than this of working this out, but I've not figured it out.
- */
-
- /* go through '0' to '9', work out hardware keycode, then find out what shift+this keycode
- * results in
- */
- for(i=0;i<10;i++)
- {
- /* Get keymapkey data for number key */
- k=gdk_keymap_get_entries_for_keyval(NULL,'0'+i,&gdkkmkResults,&iResults);
- /* error retrieving hardware keycode, so leave as standard uk character for shift + number */
- if(k==0)
- continue;
-
- /* unsure, just in case it does return 0 results but reserve memory */
- if(iResults==0)
- {
- g_free(gdkkmkResults);
- continue;
- }
-
- /* now use k to indicate GdkKeymapKey we're after */
- k=0; /* default if only one hit found */
- if(iResults>1)
- /* cycle through results if more than one matches */
- for(k=0;k<iResults;k++)
- /* have found number without using shift, ctrl, Alt etc, so shold be it. */
- if(gdkkmkResults[k].level==0)
- break;
-
- /* error figuring out which keycode to use so default to standard uk */
- if(k==iResults)
- {
- g_free(gdkkmkResults);
- continue;
- }
-
- /* set shift pressed */
- gdkkmkResults[k].level=1;
- /* now get keycode for shift + number */
- iResults=gdk_keymap_lookup_key(NULL,&(gdkkmkResults[k]));
- /* if valid keycode, enter into list of shift + numbers */
- if(iResults!=0)
- iShiftNumbers[i]=iResults;
-
- /* free resources */
- g_free(gdkkmkResults);
- }
-
- /* add record macro menu entry */
- Record_Macro_menu_item=gtk_menu_item_new_with_mnemonic(_("Record _Macro"));
- gtk_widget_show(Record_Macro_menu_item);
- gtk_container_add(GTK_CONTAINER(geany->main_widgets->tools_menu),Record_Macro_menu_item);
- g_signal_connect(Record_Macro_menu_item,"activate",G_CALLBACK(DoMacroRecording),NULL);
-
- /* add stop record macromenu entry */
- Stop_Record_Macro_menu_item=gtk_menu_item_new_with_mnemonic(_("Stop Recording _Macro"));
- gtk_widget_hide(Stop_Record_Macro_menu_item);
- gtk_container_add(GTK_CONTAINER(geany->main_widgets->tools_menu),Stop_Record_Macro_menu_item);
- g_signal_connect(Stop_Record_Macro_menu_item,"activate",G_CALLBACK(DoMacroRecording),NULL);
-
- /* add Edit Macro menu entry */
- Edit_Macro_menu_item=gtk_menu_item_new_with_mnemonic(_("_Edit Macros"));
- gtk_widget_show(Edit_Macro_menu_item);
- gtk_container_add(GTK_CONTAINER(geany->main_widgets->tools_menu),Edit_Macro_menu_item);
- g_signal_connect(Edit_Macro_menu_item,"activate",G_CALLBACK(DoEditMacro),NULL);
-
- /* set key press monitor handle */
- key_release_signal_id=g_signal_connect(geany->main_widgets->window,"key-release-event",
- G_CALLBACK(Key_Released_CallBack),NULL);
-}
-
-
-/* clean up on exiting this plugin */
-void plugin_cleanup(void)
-{
- gint k;
- guint i;
- ScintillaObject* sci;
- SCIPOINTERHOLDER *sciTemp;
- SCIPOINTERHOLDER *sciNext;
- FileData *fdTemp=fdKnownFilesSettings;
- FileData *fdTemp2;
-
- /* if macros have changed then save off */
- if(bMacrosHaveChanged==TRUE && bSaveMacros==TRUE)
- SaveSettings();
-
- /* uncouple keypress monitor */
- g_signal_handler_disconnect(geany->main_widgets->window,key_release_signal_id);
-
- /* go through all documents removing markers (?needed) */
- for(i=0;i<GEANY(documents_array)->len;i++)
- if(documents[i]->is_valid) {
- sci=documents[i]->editor->sci;
- for(k=0;k<9;k++)
- scintilla_send_message(sci,SCI_MARKERDELETEALL,BOOKMARK_BASE+k,0);
-
- }
-
- /* Clear memory used for list of editors */
- sciTemp=sciList;
- while(sciTemp!=NULL)
- {
- sciNext=sciTemp->NextNode;
- free(sciTemp);
- sciTemp=sciNext;
- }
-
- /* Clear memory used to hold file details */
- while(fdTemp!=NULL)
- {
- /* free filename */
- g_free(fdTemp->pcFileName);
- /* free folding information if present */
- if(fdTemp->pcFolding!=NULL)
- g_free(fdTemp->pcFolding);
-
- fdTemp2=fdTemp->NextNode;
- /* free memory block */
- g_free(fdTemp);
- fdTemp=fdTemp2;
- }
-
- /* clear menu entries */
- gtk_widget_destroy(Record_Macro_menu_item);
- gtk_widget_destroy(Edit_Macro_menu_item);
-
- /* Clear any macros that are recording */
- RecordingMacro=FreeMacro(RecordingMacro);
-
- /* clean up memory used by macros */
- ClearAllMacros();
-}
Deleted: trunk/geany-plugins/geanycfp/wscript_build
===================================================================
--- trunk/geany-plugins/geanycfp/wscript_build 2011-10-19 19:12:44 UTC (rev 2289)
+++ trunk/geany-plugins/geanycfp/wscript_build 2011-10-19 20:23:31 UTC (rev 2290)
@@ -1,30 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# WAF build script for geany-plugins - geanycfp
-#
-# Copyright 2010 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
-# Copyright 2011 Frank Lanitz <frank(at)frank(dot)uvena(dot)de>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# $Id$
-
-from build.wafutils import build_plugin
-
-
-name = 'geanycfp'
-includes = ['geanycfp/src']
-
-build_plugin(bld, name, includes=includes)
Deleted: trunk/geany-plugins/geanycfp/wscript_configure
===================================================================
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 2287
http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=2287&view=rev
Author: frlan
Date: 2011-10-18 08:13:56 +0000 (Tue, 18 Oct 2011)
Log Message:
-----------
GeanyVC: Fix two typos. Thanks to Peter Scholtens for reporting.
Modified Paths:
--------------
trunk/geany-plugins/geanyvc/src/geanyvc.c
Modified: trunk/geany-plugins/geanyvc/src/geanyvc.c
===================================================================
--- trunk/geany-plugins/geanyvc/src/geanyvc.c 2011-10-16 18:58:28 UTC (rev 2286)
+++ trunk/geany-plugins/geanyvc/src/geanyvc.c 2011-10-18 08:13:56 UTC (rev 2287)
@@ -710,7 +710,7 @@
}
else
{
- ui_set_statusbar(FALSE, _("No history avaible"));
+ ui_set_statusbar(FALSE, _("No history available"));
}
}
@@ -2026,7 +2026,7 @@
menu_vc_show_file = gtk_menu_item_new_with_mnemonic(_("_Original"));
gtk_container_add(GTK_CONTAINER(cur_file_menu), menu_vc_show_file);
ui_widget_set_tooltip_text(menu_vc_show_file,
- _("Shows the orignal of the current file"));
+ _("Shows the original of the current file"));
g_signal_connect(menu_vc_show_file, "activate", G_CALLBACK(vcshow_file_activated), NULL);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 2286
http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=2286&view=rev
Author: frlan
Date: 2011-10-16 18:58:28 +0000 (Sun, 16 Oct 2011)
Log Message:
-----------
Small update of NEWS file
Modified Paths:
--------------
trunk/geany-plugins/NEWS
Modified: trunk/geany-plugins/NEWS
===================================================================
--- trunk/geany-plugins/NEWS 2011-10-16 18:41:25 UTC (rev 2285)
+++ trunk/geany-plugins/NEWS 2011-10-16 18:58:28 UTC (rev 2286)
@@ -53,7 +53,7 @@
* Fix a typo inside waf-build system
Internationalisation:
- * Update translations: de, ru, tr
+ * Update translations: de, pt, ru, tr
Geany-Plugins 0.20 (2011-01-10)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 2285
http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=2285&view=rev
Author: frlan
Date: 2011-10-16 18:41:25 +0000 (Sun, 16 Oct 2011)
Log Message:
-----------
Update of Portuguese translation
Modified Paths:
--------------
trunk/geany-plugins/po/ChangeLog
trunk/geany-plugins/po/pt.po
Modified: trunk/geany-plugins/po/ChangeLog
===================================================================
--- trunk/geany-plugins/po/ChangeLog 2011-10-16 09:59:13 UTC (rev 2284)
+++ trunk/geany-plugins/po/ChangeLog 2011-10-16 18:41:25 UTC (rev 2285)
@@ -1,3 +1,8 @@
+2011-10-16 Frank Lanitz <frank(at)frank(dot)uvena(dot)de>
+
+ * pt.po: Update of Portuguese translation. Thanks to André Glória.
+
+
2011-10-14 Colomban Wendling <colomban(at)geany(dot)org>
* fr.po: Update of French translation.
Modified: trunk/geany-plugins/po/pt.po
===================================================================
--- trunk/geany-plugins/po/pt.po 2011-10-16 09:59:13 UTC (rev 2284)
+++ trunk/geany-plugins/po/pt.po 2011-10-16 18:41:25 UTC (rev 2285)
@@ -5,10 +5,10 @@
# André Glória, 2009 - 2011
msgid ""
msgstr ""
-"Project-Id-Version: geany-plugins 0.20\n"
+"Project-Id-Version: geany-plugins 0.21\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-10-03 16:33+0200\n"
-"PO-Revision-Date: 2011-01-02 11:56+0100\n"
+"POT-Creation-Date: 2011-10-16 20:39+0200\n"
+"PO-Revision-Date: 2011-10-16 17:08+0100\n"
"Last-Translator: André Glória <gloria_dot_andre_at_gmail_dot_com>\n"
"Language-Team: Portuguese\n"
"Language: \n"
@@ -18,70 +18,70 @@
"X-Poedit-Language: Portuguese\n"
"X-Poedit-Country: PORTUGAL\n"
-#: ../addons/src/ao_bookmarklist.c:179
+#: ../addons/src/ao_bookmarklist.c:182
msgid "(Empty Line)"
msgstr "(Linha em Branco)"
-#: ../addons/src/ao_bookmarklist.c:304
+#: ../addons/src/ao_bookmarklist.c:307
msgid "_Remove Bookmark"
msgstr "_Remover Favorito"
-#: ../addons/src/ao_bookmarklist.c:330
+#: ../addons/src/ao_bookmarklist.c:333
msgid "No."
msgstr "Não."
-#: ../addons/src/ao_bookmarklist.c:338 ../devhelp/src/dhp-object.c:498
+#: ../addons/src/ao_bookmarklist.c:341 ../devhelp/src/dhp-object.c:499
msgid "Contents"
msgstr "Conteúdo"
-#: ../addons/src/ao_bookmarklist.c:371 ../treebrowser/src/treebrowser.c:607
+#: ../addons/src/ao_bookmarklist.c:374 ../treebrowser/src/treebrowser.c:607
msgid "Bookmarks"
msgstr "Favoritos"
#. complete update
-#: ../addons/src/ao_tasks.c:368 ../geanyvc/src/geanyvc.c:2254
+#: ../addons/src/ao_tasks.c:373 ../geanyvc/src/geanyvc.c:2254
msgid "_Update"
msgstr "Act_ualizar"
-#: ../addons/src/ao_tasks.c:377
+#: ../addons/src/ao_tasks.c:382
msgid "_Hide Message Window"
msgstr "_Ocultar Janela de Mensagens"
-#: ../addons/src/ao_tasks.c:407 ../debugger/src/stree.c:206
+#: ../addons/src/ao_tasks.c:412 ../debugger/src/stree.c:208
msgid "File"
msgstr "Ficheiro"
-#: ../addons/src/ao_tasks.c:418 ../debugger/src/bptree.c:602
-#: ../debugger/src/stree.c:212
+#: ../addons/src/ao_tasks.c:423 ../debugger/src/bptree.c:605
+#: ../debugger/src/stree.c:214
msgid "Line"
msgstr "Linha"
-#: ../addons/src/ao_tasks.c:429 ../debugger/src/vtree.c:194
+#: ../addons/src/ao_tasks.c:434 ../debugger/src/vtree.c:197
#: ../geanylatex/src/bibtexlabels.c:68
msgid "Type"
msgstr "Tipo"
-#: ../addons/src/ao_tasks.c:440
+#: ../addons/src/ao_tasks.c:445
msgid "Task"
msgstr "Tarefa"
-#: ../addons/src/ao_tasks.c:473
+#: ../addons/src/ao_tasks.c:478
msgid "Tasks"
msgstr "Tarefas"
-#: ../addons/src/ao_tasks.c:535
+#: ../addons/src/ao_tasks.c:542
msgid "Context:"
msgstr "Contexto:"
-#: ../addons/src/ao_xmltagging.c:52
+#: ../addons/src/ao_xmltagging.c:56
msgid "XML tagging"
msgstr "Etiquetas XML"
-#: ../addons/src/ao_xmltagging.c:63
+#: ../addons/src/ao_xmltagging.c:67
msgid "Tag name to be inserted:"
msgstr "Nome da etiqueta a ser inserida:"
-#: ../addons/src/ao_xmltagging.c:67
+#: ../addons/src/ao_xmltagging.c:71
#, c-format
msgid ""
"%s will be replaced with your current selection. Please keep care on your "
@@ -90,23 +90,23 @@
"%s será substituído na sua selecção actual. Por favor, tenha em atenção o "
"que tem seleccionado"
-#: ../addons/src/ao_openuri.c:162
+#: ../addons/src/ao_openuri.c:165
msgid "Open URI"
msgstr "Abrir URI"
-#: ../addons/src/ao_openuri.c:168
+#: ../addons/src/ao_openuri.c:171
msgid "Copy URI"
msgstr "Copiar URI"
-#: ../addons/src/ao_doclist.c:204
+#: ../addons/src/ao_doclist.c:207
msgid "Close Ot_her Documents"
msgstr "Fechar os Out_ros Documentos"
-#: ../addons/src/ao_doclist.c:209
+#: ../addons/src/ao_doclist.c:212
msgid "C_lose All"
msgstr "Fechar _Todos"
-#: ../addons/src/ao_doclist.c:239
+#: ../addons/src/ao_doclist.c:242
msgid "Show Document List"
msgstr "Mostrar Lista de Documentos"
@@ -134,59 +134,58 @@
msgid "Run XML tagging"
msgstr "Auto-Completar etiquetas (tags) XML"
-#: ../addons/src/addons.c:396 ../geanylatex/src/geanylatex.c:234
-#: ../geanysendmail/src/geanysendmail.c:124
-#: ../geanysendmail/src/geanysendmail.c:285 ../geanyvc/src/geanyvc.c:1782
+#: ../addons/src/addons.c:398 ../geanylatex/src/geanylatex.c:234
+#: ../geanysendmail/src/geanysendmail.c:121
+#: ../geanysendmail/src/geanysendmail.c:282 ../geanyvc/src/geanyvc.c:1784
#: ../spellcheck/src/scplugin.c:146 ../treebrowser/src/treebrowser.c:1816
#: ../updatechecker/src/updatechecker.c:253
msgid "Plugin configuration directory could not be created."
msgstr "A directoria de configuração do plugin não pode ser criada."
-#: ../addons/src/addons.c:423
+#: ../addons/src/addons.c:425
msgid "Show toolbar item to show a list of currently open documents"
msgstr ""
"Activar o item na barra de ferramentas que mostra a lista dos documentos "
"actualmente abertos"
-#: ../addons/src/addons.c:427
+#: ../addons/src/addons.c:429
msgid "Sort documents by _name"
-msgstr ""
+msgstr "Ordenar documentos por _nome"
-#: ../addons/src/addons.c:429
+#: ../addons/src/addons.c:431
msgid "Sort the documents in the list by their filename"
-msgstr ""
+msgstr "Ordena os documentos na lista pelo seu nome de ficheiro"
-#: ../addons/src/addons.c:432
+#: ../addons/src/addons.c:434
msgid "Sort documents by _occurrence"
-msgstr ""
+msgstr "Ordenar documentos por _ocorrência"
-#: ../addons/src/addons.c:434
-#, fuzzy
+#: ../addons/src/addons.c:436
msgid "Sort the documents in the order of the document tabs"
-msgstr "Defina a codificação para o novo documento"
+msgstr "Ordenar os documentos pela ordem das abas no editor"
-#: ../addons/src/addons.c:437
+#: ../addons/src/addons.c:439
msgid "Sort documents by _occurrence (reversed)"
-msgstr ""
+msgstr "Ordenar documentos por _ocorrência (invertido)"
-#: ../addons/src/addons.c:439
+#: ../addons/src/addons.c:441
msgid "Sort the documents in the order of the document tabs (reversed)"
-msgstr ""
+msgstr "Ordenar documentos pela mesma ordem das abas no editor (invertido)"
#. TODO fix the string
-#: ../addons/src/addons.c:467
+#: ../addons/src/addons.c:469
msgid "Show a 'Open URI' menu item in the editor menu"
msgstr "Mostrar \"Abrir URI\" no menu do editor"
-#: ../addons/src/addons.c:473
+#: ../addons/src/addons.c:475
msgid "Show available Tasks in the Messages Window"
msgstr "Mostrar tarefas existentes, na Janela de Mensagens"
-#: ../addons/src/addons.c:479
+#: ../addons/src/addons.c:481
msgid "Show tasks of all documents"
msgstr "Mostrar tarefas de todos os documentos"
-#: ../addons/src/addons.c:483
+#: ../addons/src/addons.c:485
msgid ""
"Whether to show the tasks of all open documents in the list or only those of "
"the current document."
@@ -194,42 +193,41 @@
"Se devem ser apresentadas, na lista, as tarefas de todos os documentos "
"abertos ou apenas as do documento activo."
-#: ../addons/src/addons.c:490
+#: ../addons/src/addons.c:492
msgid "Specify a semicolon separated list of search tokens."
msgstr ""
"Especifique uma lista separada por ponto e vírgula dos símbolos a pesquisar."
-#: ../addons/src/addons.c:492
+#: ../addons/src/addons.c:494
msgid "Search tokens:"
msgstr "Símbolos a Pesquisar:"
-#: ../addons/src/addons.c:509
+#: ../addons/src/addons.c:511
msgid "Show status icon in the Notification Area"
msgstr "Mostrar ícone de estado na Área de Notificação"
-#: ../addons/src/addons.c:515
+#: ../addons/src/addons.c:517
msgid "Show defined bookmarks (marked lines) in the sidebar"
msgstr "Mostrar favoritos (linhas marcadas) na barra lateral"
-#: ../addons/src/addons.c:521
+#: ../addons/src/addons.c:523
msgid "Mark all occurrences of a word when double-clicking it"
msgstr ""
"Assinalar todas as ocorrências de uma palavra sobre a qual faça duplo-clique"
-#: ../addons/src/addons.c:527
+#: ../addons/src/addons.c:529
msgid "Strip trailing blank lines"
msgstr "Remover espaços e tabulações finais"
-#: ../addons/src/addons.c:533
+#: ../addons/src/addons.c:535
msgid "XML tagging for selection"
msgstr "Etiquetar selecções com XML"
-#. All plugins must set name, description, version and author.
-#: ../codenav/src/codenavigation.c:44
+#: ../codenav/src/codenavigation.c:52
msgid "Code navigation"
msgstr "Navegar pelo Código"
-#: ../codenav/src/codenavigation.c:45
+#: ../codenav/src/codenavigation.c:53
msgid ""
"This plugin adds features to facilitate navigation between source files.\n"
"As for the moment, it implements :\n"
@@ -244,365 +242,349 @@
"concluir)]"
#. Add the menu item, sensitive only when a document is opened
-#: ../codenav/src/goto_file.c:50 ../codenav/src/goto_file.c:64
+#: ../codenav/src/goto_file.c:55 ../codenav/src/goto_file.c:69
msgid "Goto file"
msgstr "Ir para o ficheiro"
-#: ../codenav/src/goto_file.c:101
+#: ../codenav/src/goto_file.c:106
#, c-format
msgid "(From the %s plugin)"
msgstr "(Do plugin %s )"
#. Add the menu item and make it sensitive only when a document is opened
#. Frame, which is the returned widget
-#: ../codenav/src/switch_head_impl.c:78 ../codenav/src/switch_head_impl.c:92
-#: ../codenav/src/switch_head_impl.c:452
+#: ../codenav/src/switch_head_impl.c:83 ../codenav/src/switch_head_impl.c:97
+#: ../codenav/src/switch_head_impl.c:457
msgid "Switch header/implementation"
msgstr "Alternar cabeçalho/implementação"
-#: ../codenav/src/switch_head_impl.c:360
+#: ../codenav/src/switch_head_impl.c:365
#, c-format
msgid "%s not found, create it?"
msgstr "%s não encontrado, criá-lo?"
-#: ../codenav/src/switch_head_impl.c:476
+#: ../codenav/src/switch_head_impl.c:481
msgid "Headers extensions"
msgstr "Extensões de Cabeçalho"
-#: ../codenav/src/switch_head_impl.c:485
+#: ../codenav/src/switch_head_impl.c:490
msgid "Implementations extensions"
msgstr "Extensões de Implementações"
#: ../debugger/src/plugin.c:56
-#, fuzzy
msgid "Debugger"
-msgstr "Depuração (debug)"
+msgstr "Depurador"
#: ../debugger/src/plugin.c:57
msgid "Various debuggers integration."
-msgstr ""
+msgstr "Integração de vários debuggers"
-#: ../debugger/src/plugin.c:132 ../debugger/src/keys.c:70
+#: ../debugger/src/plugin.c:129 ../debugger/src/keys.c:74
#: ../geanygdb/src/geanygdb.c:393
msgid "Debug"
msgstr "Depuração (debug)"
-#: ../debugger/src/vtree.c:163 ../debugger/src/envtree.c:393
-#, fuzzy
+#: ../debugger/src/vtree.c:166 ../debugger/src/envtree.c:397
msgid "Name"
-msgstr "Nome:"
+msgstr "Nome"
-#: ../debugger/src/vtree.c:186 ../debugger/src/envtree.c:398
+#: ../debugger/src/vtree.c:189 ../debugger/src/envtree.c:402
msgid "Value"
-msgstr ""
+msgstr "Valor"
-#: ../debugger/src/tpage.c:97
+#: ../debugger/src/tpage.c:101
msgid "Choose target file"
-msgstr ""
+msgstr "Escolha o ficheiro alvo"
#. target
-#: ../debugger/src/tpage.c:234
-#, fuzzy
+#: ../debugger/src/tpage.c:238
msgid "Target:"
-msgstr "Grande"
+msgstr "Alvo:"
-#: ../debugger/src/tpage.c:237
-#, fuzzy
+#: ../debugger/src/tpage.c:241
msgid "Browse"
-msgstr "Explorar..."
+msgstr "Explorar"
#. debugger
-#: ../debugger/src/tpage.c:242
-#, fuzzy
+#: ../debugger/src/tpage.c:246
msgid "Debugger:"
-msgstr "Depuração (debug)"
+msgstr "Depurador:"
#. arguments
-#: ../debugger/src/tpage.c:255
-#, fuzzy
+#: ../debugger/src/tpage.c:259
msgid "Command Line Arguments"
-msgstr "Nome do comando:"
+msgstr "Argumentos de Linha de Comandos"
#. environment
-#: ../debugger/src/tpage.c:266
-#, fuzzy
+#: ../debugger/src/tpage.c:270
msgid "Environment Variables"
-msgstr "Ambientes"
+msgstr "Variáveis de Ambiente"
#. if name is empty - offer to delete variable
-#: ../debugger/src/envtree.c:243 ../debugger/src/envtree.c:346
-#: ../debugger/src/debug.c:237
-#, fuzzy
+#: ../debugger/src/envtree.c:247 ../debugger/src/envtree.c:350
+#: ../debugger/src/debug.c:235
msgid "Delete variable?"
-msgstr "Variáveis Locais"
+msgstr "Eliminar variável?"
-#: ../debugger/src/bptree.c:574
-#, fuzzy
+#: ../debugger/src/bptree.c:577
msgid "Location"
-msgstr "Directório:"
+msgstr "Localização"
-#: ../debugger/src/bptree.c:584
-#, fuzzy
+#: ../debugger/src/bptree.c:587
msgid "Condition"
-msgstr "Edição"
+msgstr "Condição"
-#: ../debugger/src/bptree.c:596
+#: ../debugger/src/bptree.c:599
msgid "Hit count"
-msgstr ""
+msgstr "Contar ocorrências"
-#: ../debugger/src/bptree.c:609 ../geanygdb/src/gdb-ui-break.c:163
+#: ../debugger/src/bptree.c:612 ../geanygdb/src/gdb-ui-break.c:163
msgid "Enabled"
msgstr "Activado"
-#: ../debugger/src/bptree.c:766
+#: ../debugger/src/bptree.c:769
#, c-format
msgid "line %i"
-msgstr ""
+msgstr "linha %i"
-#: ../debugger/src/debug.c:1087
+#: ../debugger/src/debug.c:1076
#, c-format
msgid ""
"Breakpoint at %s:%i cannot be set\n"
"Debugger message: %s"
msgstr ""
+"Breakpoint em %s:%i não pode ser definido\n"
+"Mensagem do depurador: %s"
-#: ../debugger/src/dbm_gdb.c:339
-#, fuzzy
+#: ../debugger/src/dbm_gdb.c:340
msgid "Program received a signal"
-msgstr "O programa recebeu o sinal:"
+msgstr "O programa recebeu um sinal"
-#: ../debugger/src/dbm_gdb.c:545
+#: ../debugger/src/dbm_gdb.c:546
msgid "Failed to spawn gdb process"
-msgstr ""
+msgstr "Fallha ao iniciar o processo gdb"
-#: ../debugger/src/dbm_gdb.c:585
+#: ../debugger/src/dbm_gdb.c:586
msgid "Error configuring GDB"
-msgstr ""
+msgstr "Erro ao configurar o GDB"
-#: ../debugger/src/dbm_gdb.c:607
+#: ../debugger/src/dbm_gdb.c:608
msgid "Error loading file"
-msgstr ""
+msgstr "Erro ao ler ficheiro"
-#: ../debugger/src/utils.c:63
+#: ../debugger/src/utils.c:66
#, c-format
msgid "Can't find a source file \"%s\""
-msgstr ""
+msgstr "Não foi possível encontrar o ficheiro \"%s\""
-#: ../debugger/src/stree.c:194 ../geanylatex/src/bibtexlabels.c:46
+#: ../debugger/src/stree.c:196 ../geanylatex/src/bibtexlabels.c:46
msgid "Address"
msgstr "Morada"
-#: ../debugger/src/stree.c:200
-#, fuzzy
+#: ../debugger/src/stree.c:202
msgid "Function"
-msgstr "Argumentos da função"
+msgstr "Função"
-#: ../debugger/src/tabs.c:128
-#, fuzzy
+#: ../debugger/src/tabs.c:132
msgid "Target"
-msgstr "Grande"
+msgstr "Alvo"
-#: ../debugger/src/tabs.c:131 ../geanygdb/src/gdb-ui-break.c:504
+#: ../debugger/src/tabs.c:135 ../geanygdb/src/gdb-ui-break.c:504
msgid "Breakpoints"
msgstr "Pontos de Paragem"
-#: ../debugger/src/tabs.c:134
-#, fuzzy
+#: ../debugger/src/tabs.c:138
msgid "Watch"
-msgstr "Pontos de Observação"
+msgstr "Observação"
-#: ../debugger/src/tabs.c:137
+#: ../debugger/src/tabs.c:141
msgid "Autos"
-msgstr ""
+msgstr "Autos"
-#: ../debugger/src/tabs.c:140
-#, fuzzy
+#: ../debugger/src/tabs.c:144
msgid "Call Stack"
-msgstr "Pil_ha"
+msgstr "Analisar a Pilha"
-#: ../debugger/src/tabs.c:143
-#, fuzzy
+#: ../debugger/src/tabs.c:147
msgid "Debug Terminal"
-msgstr "Executar no terminal"
+msgstr "Consola de Depuração (debug)"
-#: ../debugger/src/tabs.c:146
-#, fuzzy
+#: ../debugger/src/tabs.c:150
msgid "Debugger Messages"
-msgstr "Depuração (debug)"
+msgstr "Mensagens de Depuração (debug)"
-#: ../debugger/src/watch_model.c:219
-#, fuzzy
-msgid "Can't evaluate expression"
-msgstr "expressão regular inválida: %s"
+#: ../debugger/src/keys.c:49
+msgid "Run / Continue"
+msgstr "Executar / Continuar"
-#: ../debugger/src/callbacks.c:229
-msgid "To edit source files stop debugging session"
-msgstr ""
+#: ../debugger/src/keys.c:50 ../debugger/src/btnpanel.c:101
+msgid "Stop"
+msgstr "Parar"
-#: ../debugger/src/btnpanel.c:86 ../debugger/src/btnpanel.c:155
-#, fuzzy
-msgid "Run"
-msgstr "Executa_r"
-
-#: ../debugger/src/btnpanel.c:94
-#, fuzzy
+#: ../debugger/src/keys.c:51 ../debugger/src/btnpanel.c:98
msgid "Restart"
-msgstr "a iniciar"
+msgstr "Reiniciar"
-#: ../debugger/src/btnpanel.c:97
-msgid "Stop"
-msgstr ""
+#: ../debugger/src/keys.c:52 ../debugger/src/btnpanel.c:113
+msgid "Step into"
+msgstr "Avançar para dentro"
-#: ../debugger/src/btnpanel.c:106
+#: ../debugger/src/keys.c:53 ../debugger/src/btnpanel.c:110
msgid "Step over"
-msgstr ""
+msgstr "Avançar sobre"
-#: ../debugger/src/btnpanel.c:109
-#, fuzzy
-msgid "Step into"
-msgstr "Avançar para d_entro"
-
-#: ../debugger/src/btnpanel.c:118
-#, fuzzy
+#: ../debugger/src/keys.c:54 ../debugger/src/btnpanel.c:122
msgid "Step out"
-msgstr "Avançar para d_entro"
+msgstr "Avançar para fora"
-#: ../debugger/src/btnpanel.c:121
-#, fuzzy
+#: ../debugger/src/keys.c:55 ../debugger/src/btnpanel.c:125
msgid "Run to cursor"
-msgstr "Executar até à posição"
+msgstr "Executar até ao cursor"
-#: ../debugger/src/btnpanel.c:128
-#, fuzzy
+#: ../debugger/src/keys.c:56
+msgid "Add / Remove breakpoint"
+msgstr "Adiciona / Retira ponto de paragem"
+
+#: ../debugger/src/keys.c:57
+msgid "Jump to the currect instruction"
+msgstr "Saltar para a instrução atual"
+
+#: ../debugger/src/watch_model.c:221
+msgid "Can't evaluate expression"
+msgstr "Falha ao avaliar expressão"
+
+#: ../debugger/src/callbacks.c:222
+msgid "To edit source files stop debugging session"
+msgstr "Para editar o código fonte pare a sessão de depuração"
+
+#: ../debugger/src/btnpanel.c:90 ../debugger/src/btnpanel.c:159
+msgid "Run"
+msgstr "Executar"
+
+#: ../debugger/src/btnpanel.c:132
msgid "Settings"
-msgstr "definição"
+msgstr "Preferências"
-#: ../debugger/src/btnpanel.c:132
+#: ../debugger/src/btnpanel.c:136
msgid "Two panel mode"
-msgstr ""
+msgstr "Modo de duplo painel"
-#: ../debugger/src/btnpanel.c:150
-#, fuzzy
+#: ../debugger/src/btnpanel.c:154
msgid "Continue"
-msgstr "A contar..."
+msgstr "Continuar"
-#: ../debugger/src/dconfig.c:664
+#: ../debugger/src/dconfig.c:667
msgid "Save debug session data to a project"
-msgstr ""
+msgstr "Guardar dados da sessão de depuração num projecto"
#. never search for more than this many chars
#: ../devhelp/src/dhp.h:38
-#, fuzzy
msgid "Documentation"
-msgstr "Tipo de documentação"
+msgstr "Documentação"
#: ../devhelp/src/dhp.h:39
msgid "Code"
-msgstr ""
+msgstr "Código"
-#: ../devhelp/src/dhp-object.c:387
+#: ../devhelp/src/dhp-object.c:388
msgid "Search for 'Tag' Documentation in"
-msgstr ""
+msgstr "Procurar por documentação de 'Etiqueta' em"
-#: ../devhelp/src/dhp-object.c:390 ../devhelp/src/dhp-object.c:507
+#: ../devhelp/src/dhp-object.c:391 ../devhelp/src/dhp-object.c:508
msgid "Devhelp"
-msgstr ""
+msgstr "Devhelp"
-#: ../devhelp/src/dhp-object.c:397
-#, fuzzy
+#: ../devhelp/src/dhp-object.c:398
msgid "Manual Pages"
msgstr "Manual"
-#: ../devhelp/src/dhp-object.c:403
+#: ../devhelp/src/dhp-object.c:404
msgid "Google Code"
-msgstr ""
+msgstr "Google Code"
-#: ../devhelp/src/dhp-object.c:447
+#: ../devhelp/src/dhp-object.c:448
msgid "Go back one page"
-msgstr ""
+msgstr "Recuar uma página"
-#: ../devhelp/src/dhp-object.c:448
+#: ../devhelp/src/dhp-object.c:449
msgid "Go forward one page"
-msgstr ""
+msgstr "Avançar uma página"
-#: ../devhelp/src/dhp-object.c:449
-#, fuzzy
+#: ../devhelp/src/dhp-object.c:450
msgid "Zoom in"
-msgstr "_Zoom"
+msgstr "Aumentar (zoom)"
-#: ../devhelp/src/dhp-object.c:450
-#, fuzzy
+#: ../devhelp/src/dhp-object.c:451
msgid "Zoom out"
-msgstr "_Zoom"
+msgstr "Reduzir (Zoom)"
-#: ../devhelp/src/dhp-object.c:501
-#, fuzzy
+#: ../devhelp/src/dhp-object.c:502
msgid "Search"
-msgstr "Símbolos a Pesquisar:"
+msgstr "Pesquisar"
-#: ../devhelp/src/dhp-object.c:1319
-#, fuzzy, c-format
+#: ../devhelp/src/dhp-object.c:1320
+#, c-format
msgid "Search for '%s' Documentation in"
-msgstr "Inserir Comentário de Documentação"
+msgstr "Pesquisar documentação de '%s' em"
-#: ../devhelp/src/dhp-plugin.c:37
+#: ../devhelp/src/dhp-plugin.c:42
msgid "Devhelp Plugin"
-msgstr ""
+msgstr "Plugin Devhelp"
-#: ../devhelp/src/dhp-plugin.c:38
+#: ../devhelp/src/dhp-plugin.c:43
msgid ""
"Adds support for looking up documentation in Devhelp, manual pages, and "
"Google Code Search in the integrated viewer."
msgstr ""
+"Adiciona suporte para a pesquisa de documentação no Devhelp, no manual e no "
+"pesquisador de código do Google integrado na janela."
-#: ../devhelp/src/dhp-plugin.c:132
-#, fuzzy, c-format
+#: ../devhelp/src/dhp-plugin.c:137
+#, c-format
msgid "Unable to create config dir at '%s'"
-msgstr "Incapaz de guardar configuração: %s"
+msgstr "Incapaz de criar o directório de configuração em '%s'"
-#: ../devhelp/src/dhp-plugin.c:147
-#, fuzzy, c-format
+#: ../devhelp/src/dhp-plugin.c:152
+#, c-format
msgid "Unable to get default configuration: %s"
msgstr "Incapaz de ler configuração: %s"
-#: ../devhelp/src/dhp-plugin.c:155
-#, fuzzy, c-format
+#: ../devhelp/src/dhp-plugin.c:160
+#, c-format
msgid "Unable to write default configuration: %s"
-msgstr "Incapaz de ler configuração: %s"
+msgstr "Incapaz de escrever configuração: %s"
-#: ../devhelp/src/dhp-plugin.c:185
+#: ../devhelp/src/dhp-plugin.c:190
msgid "Toggle sidebar contents tab"
-msgstr ""
+msgstr "Comutar a aba de conteúdos na barra lateral"
-#: ../devhelp/src/dhp-plugin.c:187
-#, fuzzy
+#: ../devhelp/src/dhp-plugin.c:192
msgid "Toggle sidebar search tab"
-msgstr "Comuta o inspector Web"
+msgstr "Comutar a aba de pesquisa na barra lateral"
-#: ../devhelp/src/dhp-plugin.c:189
-#, fuzzy
+#: ../devhelp/src/dhp-plugin.c:194
msgid "Toggle documentation tab"
-msgstr "tipo de documentação"
+msgstr "Comutar a aba de documentação"
-#: ../devhelp/src/dhp-plugin.c:191
+#: ../devhelp/src/dhp-plugin.c:196
msgid "Activate all tabs"
-msgstr ""
+msgstr "Ativar todas as abas"
-#: ../devhelp/src/dhp-plugin.c:193
+#: ../devhelp/src/dhp-plugin.c:198
msgid "Search for current tag in Devhelp"
-msgstr ""
+msgstr "Pesquisar a etiqueta atual no Devhelp"
-#: ../devhelp/src/dhp-plugin.c:197
+#: ../devhelp/src/dhp-plugin.c:202
msgid "Search for current tag in Manual Pages"
-msgstr ""
+msgstr "Pesquisar a etiqueta atual no Manual"
-#: ../devhelp/src/dhp-plugin.c:200
+#: ../devhelp/src/dhp-plugin.c:205
msgid "Search for current tag in Google Code Search"
-msgstr ""
+msgstr "Pesquisar a etiqueta atual no pesquisador de código do Google"
#: ../geanycfp/src/geanycfp.c:86
msgid "ConText Feature parity plugin"
-msgstr ""
+msgstr "Plugin de características do ConText"
#: ../geanycfp/src/geanycfp.c:639 ../geanymacro/src/geanymacro.c:378
#, c-format
@@ -610,6 +592,8 @@
"Unrecognised message\n"
"%i %i %i"
msgstr ""
+"Mensagem não reconhecida\n"
+"%i %i %i"
#: ../geanycfp/src/geanycfp.c:1109
#: ../geanynumberedbookmarks/src/geanynumberedbookmarks.c:605
@@ -619,40 +603,42 @@
"be unreliable and will not be loaded.\n"
"Press Ignore to try an load markers anyway."
msgstr ""
+"'%s' foi editado desde a última vez que o geany o guardou. Marcadores de "
+"posição podem estar incorretos e não serão carregados.\n"
+"Clique Ignorar para os carregar na mesma."
#: ../geanycfp/src/geanycfp.c:1112
#: ../geanynumberedbookmarks/src/geanynumberedbookmarks.c:608
msgid "_Okay"
-msgstr ""
+msgstr "_Ok"
#: ../geanycfp/src/geanycfp.c:1113
#: ../geanynumberedbookmarks/src/geanynumberedbookmarks.c:609
-#, fuzzy
msgid "_Ignore"
-msgstr "Ignorar Tudo"
+msgstr "_Ignorar"
#: ../geanycfp/src/geanycfp.c:1299
#: ../geanynumberedbookmarks/src/geanynumberedbookmarks.c:788
msgid "remember fold state"
-msgstr ""
+msgstr "lembrar o estado da agregação"
#: ../geanycfp/src/geanycfp.c:1305
#: ../geanynumberedbookmarks/src/geanynumberedbookmarks.c:794
msgid "Center view when goto bookmark"
-msgstr ""
+msgstr "Centrar vista ao ir para um favorito"
#: ../geanycfp/src/geanycfp.c:1311 ../geanymacro/src/geanymacro.c:652
msgid "Save Macros when close Geany"
-msgstr ""
+msgstr "Guardar Macros ao fechar o Geany"
#: ../geanycfp/src/geanycfp.c:1317 ../geanymacro/src/geanymacro.c:658
msgid "Ask before replaceing existing Macros"
-msgstr ""
+msgstr "Perguntar antes de substituir Macros existentes"
#. create dialog box
#: ../geanycfp/src/geanycfp.c:1337
msgid "ConTEXT feature parity help"
-msgstr ""
+msgstr "Ajuda do ConText plugin"
#: ../geanycfp/src/geanycfp.c:1345
msgid ""
@@ -706,35 +692,79 @@
"otherwise it will simply erase any existing macros with the same name, or "
"the same key trigger combination."
msgstr ""
+"Este plugin implementa duas funcionalidades úteis.\n"
+"\n"
+"Primeiro permite usar 10 favoritos numerados. Normalmente se tiver mais do "
+"que um favorito, terá de percorrê-los a todos até chegar ao que pretende. "
+"Com este plugin pode ir diretamente ao favorito que pretende com uma única "
+"combinação de teclas. Para definir um favorito numerado carregue em Ctrl"
+"+Shift+um número de 0 a 9. Verá uma marca aparecer junto do número da linha. "
+"Se carregar em Ctrl+Shift+um número quando está numa linha com favorito "
+"numerado previamente atribuído, irá remover esse favorito. Caso contrário, "
+"irá mover o favorito para a linha em questão se este estava já definido "
+"noutra linha ou cria-o se não estava ainda definido. Apenas o favorito com o "
+"número mais elevado aparecerá, mas pode definir mais do que um por linha. "
+"Este plugin não interfere com o sistema normal de favoritos. Quando guarda "
+"um ficheiro, o Geany irá guardar os seus favoritos numerados e garantir que "
+"serão usados na próxima vez que abrir o mesmo ficheiro.\n"
+"\n"
+"Segundo este plugin permite-lhe gravar e usar as suas próprias macros. Estas "
+"são sequências de ações que podem ser repetidas com uma simples combinação "
+"de teclas. Por exemplo, se tiver dezenas de linhas das quais pretender "
+"eliminar os 2 últimos caracteres, poderia iniciar a gravação, carregar nas "
+"teclas End, Backspace, Backspace, mudar para a linha a seguir e para a "
+"gravação da macro. Agora pode simplesmente ativar a macro e automaticamente "
+"a linha atual será editada e o cursor ficará na linha seguinte. Selecione "
+"Gravar Macro no menu Ferramentas e uma janela surgirá a questioná-lo. Tem de "
+"definir uma combinação de teclas ainda não utilizada e um nome para o ajudar "
+"a identificar a macro. Depois carregue em gravar. O que fizer no editor será "
+"gravador até que selecione Parar Gravação no menu Ferramentas. Ao premir a "
+"combinação de teclas definida a macro será executada. Para editar macros "
+"selecione Editar Macros no menu Ferramentas. Pode selecionar uma macro e "
+"apagá-la ou regravá-la. Pode ainda clicar no nome da macro e alterá-lo, ou "
+"na combinação de teclas e redefini-la para uma ainda não em uso.\n"
+"\n"
+"Pode alterar o comportamento deste plugin indo a Gestor de Plugins no menu "
+"Ferramentas, selecionando-o e clicando em Preferências. Pode alterar:\n"
+"Lembrar o estado de agregação - com esta opção ativa, o plugin irá recordar "
+"o estados de quaisquer agregações de código juntamente com os favoritos "
+"numerados e aplica-los-á na próxima vez que abrir o mesmo ficheiro.\n"
+"Centrar vista ao ir para favorito - com esta opção ativa o plugin tentará "
+"garantir que o favorito para onde pretende ir, aparecerá no centro do ecrã, "
+"caso contrário ele irá aparecer num qualquer local do ecrã.\n"
+"Guardar macros ao fechar o Geany - Esta opção fará o Geany guardar todas as "
+"macros existentes, permitindo que as use assim que voltar a abrir o Geany. "
+"Caso contrário, todas as macros serão perdidas ao fechar o Geany.\n"
+"Perguntar antes de substituir macros - Esta opção permite-lhe ter a opção de "
+"dar um novo nome OU uma nova combinação de teclas quando grava uma macro "
+"sobre outra que já existe. Caso contrário, quaisquer macros existentes, com "
+"o mesmo nome OU combinação de teclas serão apagadas."
#: ../geanycfp/src/geanycfp.c:1629 ../geanymacro/src/geanymacro.c:867
msgid "Record Macro"
-msgstr ""
+msgstr "Gravar Macro"
#. create buttons
#: ../geanycfp/src/geanycfp.c:1632 ../geanymacro/src/geanymacro.c:870
msgid "Record"
-msgstr ""
+msgstr "Gravar"
#: ../geanycfp/src/geanycfp.c:1633 ../geanycfp/src/geanycfp.c:1950
#: ../geanymacro/src/geanymacro.c:871 ../geanymacro/src/geanymacro.c:1189
-#, fuzzy
msgid "Cancel"
-msgstr "Cancelar carregamento"
+msgstr "Cancelar"
#: ../geanycfp/src/geanycfp.c:1640 ../geanymacro/src/geanymacro.c:878
-#, fuzzy
msgid "Macro Trigger:"
-msgstr "Accionador:"
+msgstr "Accionador da Macro:"
#: ../geanycfp/src/geanycfp.c:1654 ../geanymacro/src/geanymacro.c:892
-#, fuzzy
msgid "Macro Name:"
-msgstr "Nome:"
+msgstr "Nome da Macro:"
#: ../geanycfp/src/geanycfp.c:1677 ../geanymacro/src/geanymacro.c:915
msgid "You must define a key trigger combination"
-msgstr ""
+msgstr "Tem de definir uma combinação de teclas para desencadear o evento"
#: ../geanycfp/src/geanycfp.c:1691 ../geanymacro/src/geanymacro.c:929
#, c-format
@@ -743,6 +773,9 @@
" is already in use.\n"
"Replace?"
msgstr ""
+"Macro com nome \"%s\"\n"
+"já se encontra em uso.\n"
+"Substituir?"
#: ../geanycfp/src/geanycfp.c:1707 ../geanymacro/src/geanymacro.c:945
#, c-format
@@ -751,25 +784,26 @@
" is already in use.\n"
"Replace?"
msgstr ""
+"Combinação para Macro \"%s\"\n"
+"já se encontra em uso.\n"
+"Substituir?"
#: ../geanycfp/src/geanycfp.c:1887 ../geanymacro/src/geanymacro.c:1126
-#, fuzzy
msgid "Edit Macros"
-msgstr "Editar ponto de observação"
+msgstr "Editar Macros"
#: ../geanycfp/src/geanycfp.c:1919 ../geanymacro/src/geanymacro.c:1158
msgid "Macro Name"
-msgstr ""
+msgstr "Nome da Macro"
#: ../geanycfp/src/geanycfp.c:1925 ../geanymacro/src/geanymacro.c:1164
-#, fuzzy
msgid "Key Trigger"
-msgstr "Accionador:"
+msgstr "Combinação de teclas"
#. add buttons
#: ../geanycfp/src/geanycfp.c:1948 ../geanymacro/src/geanymacro.c:1187
msgid "Re-Record"
-msgstr ""
+msgstr "Regravar"
#: ../geanycfp/src/geanycfp.c:1949 ../geanymacro/src/geanymacro.c:1188
#: ../treebrowser/src/treebrowser.c:1233
@@ -779,17 +813,17 @@
#. add record macro menu entry
#: ../geanycfp/src/geanycfp.c:2073 ../geanymacro/src/geanymacro.c:1313
msgid "Record _Macro"
-msgstr ""
+msgstr "Gravar _Macro"
#. add stop record macromenu entry
#: ../geanycfp/src/geanycfp.c:2079 ../geanymacro/src/geanymacro.c:1319
msgid "Stop Recording _Macro"
-msgstr ""
+msgstr "Terminar a gravação da _Macro"
#. add Edit Macro menu entry
#: ../geanycfp/src/geanycfp.c:2085 ../geanymacro/src/geanymacro.c:1325
msgid "_Edit Macros"
-msgstr ""
+msgstr "_Editar Macros"
#. All plugins must set name, description, version and author.
#: ../geanydoc/src/geanydoc.c:50 ../geanydoc/src/geanydoc.c:347
@@ -800,7 +834,7 @@
msgid "Call documentation viewer on current symbol."
msgstr "Executar o visualizador de documentação sobre o símbolo actual."
-#: ../geanydoc/src/geanydoc.c:170 ../geanyvc/src/geanyvc.c:405
+#: ../geanydoc/src/geanydoc.c:170 ../geanyvc/src/geanyvc.c:407
msgid "Could not parse the output of command"
msgstr "Incapaz de processar o resultado do comando"
@@ -1062,22 +1096,18 @@
msgstr "Editar ponto de paragem"
#: ../geanygdb/src/gdb-ui-break.c:169
-#, fuzzy
msgid "Break after "
msgstr "Parar após"
#: ../geanygdb/src/gdb-ui-break.c:176
-#, fuzzy
msgid " times."
msgstr "vezes."
#: ../geanygdb/src/gdb-ui-break.c:181
-#, fuzzy
msgid "Break when "
msgstr "Parar quando"
#: ../geanygdb/src/gdb-ui-break.c:188
-#, fuzzy
msgid " is true."
msgstr "é verdadeiro(a)."
@@ -1133,8 +1163,8 @@
msgid "Select Font"
msgstr "Seleccionar Tipo de Letra"
-#: ../geanygdb/src/gdb-ui-envir.c:184 ../geanyprj/src/menu.c:412
-#: ../geanyprj/src/sidebar.c:214
+#: ../geanygdb/src/gdb-ui-envir.c:184 ../geanyprj/src/menu.c:417
+#: ../geanyprj/src/sidebar.c:219
msgid "Preferences"
msgstr "Preferências"
@@ -2260,7 +2290,6 @@
msgstr "Activar barra de ferramentas extra, do plugin"
#: ../geanylatex/src/geanylatex.c:295
-#, fuzzy
msgid "Capitalize sentence on typing"
msgstr "Capitalizar frase ao escrever"
@@ -2339,7 +2368,6 @@
msgstr "Inserir Referência BibTeX"
#: ../geanylatex/src/geanylatex.c:1246
-#, fuzzy
msgid "BibTeX reference name:"
msgstr "Nome da referência BibTeX:"
@@ -2720,9 +2748,8 @@
msgstr "Insere um comando personalizado no documento"
#: ../geanylatex/src/letters.c:40
-#, fuzzy
msgid "LaTeX letters"
-msgstr "Letras Gregas"
+msgstr "Letras LaTeX"
#: ../geanylatex/src/letters.c:41
msgid "Greek letters"
@@ -2864,32 +2891,32 @@
msgid "Don't set any encoding"
msgstr "Não definir nenhuma codificação"
-#: ../geanylipsum/src/geanylipsum.c:41
+#: ../geanylipsum/src/geanylipsum.c:40
msgid "GeanyLipsum"
msgstr "GeanyLipsum"
-#: ../geanylipsum/src/geanylipsum.c:42
+#: ../geanylipsum/src/geanylipsum.c:41
msgid "Creating dummy text with Geany"
msgstr "Criar texto fictício com o Geany."
-#: ../geanylipsum/src/geanylipsum.c:87
+#: ../geanylipsum/src/geanylipsum.c:86
msgid "Lipsum-Generator"
msgstr "Gerador de Lipsum"
-#: ../geanylipsum/src/geanylipsum.c:88
+#: ../geanylipsum/src/geanylipsum.c:87
msgid "Enter the length of Lipsum text here"
msgstr "Introduza a dimensão do texto Lipsum aqui"
#. Building menu entry
-#: ../geanylipsum/src/geanylipsum.c:164
+#: ../geanylipsum/src/geanylipsum.c:163
msgid "_Lipsum"
msgstr "_Lipsum"
-#: ../geanylipsum/src/geanylipsum.c:166
+#: ../geanylipsum/src/geanylipsum.c:165
msgid "Include Pseudotext to your code"
msgstr "Inclui pseudo-texto no seu código"
-#: ../geanylipsum/src/geanylipsum.c:180
+#: ../geanylipsum/src/geanylipsum.c:179
msgid "Insert Lipsum text"
msgstr "Inserir texto Lipsum"
@@ -3182,12 +3209,12 @@
#: ../geanymacro/src/geanymacro.c:51
msgid "Macros for Geany"
-msgstr ""
+msgstr "Macros para o Geany"
#. create dialog box
#: ../geanymacro/src/geanymacro.c:678
msgid "Geany Macros help"
-msgstr ""
+msgstr "Ajuda Macros Geany"
#: ../geanymacro/src/geanymacro.c:686
msgid ""
@@ -3221,15 +3248,42 @@
"otherwise it will simply erase any existing macros with the same name, or "
"the same key trigger combination."
msgstr ""
+"Este plugin implementa Macros no Geany.\n"
+"\n"
+"Este plugin permite-lhe gravar e usar as suas próprias macros. Estas são "
+"sequências de ações que podem ser repetidas com uma simples combinação de "
+"teclas. Por exemplo, se tiver dezenas de linhas das quais pretender eliminar "
+"os 2 últimos caracteres, poderia iniciar a gravação, carregar nas teclas "
+"End, Backspace, Backspace, mudar para a linha a seguir e para a gravação da "
+"macro. Agora pode simplesmente ativar a macro e automaticamente a linha "
+"atual será editada e o cursor ficará na linha seguinte. Selecione Gravar "
+"Macro no menu Ferramentas e uma janela surgirá a questioná-lo. Tem de "
+"definir uma combinação de teclas ainda não utilizada e um nome para o ajudar "
+"a identificar a macro. Depois carregue em gravar. O que fizer no editor será "
+"gravador até que selecione Parar Gravação no menu Ferramentas. Ao premir a "
+"combinação de teclas definida a macro será executada. Para editar macros "
+"selecione Editar Macros no menu Ferramentas. Pode selecionar uma macro e "
+"apagá-la ou regravá-la. Pode ainda clicar no nome da macro e alterá-lo, ou "
+"na combinação de teclas e redefini-la para uma ainda não em uso.\n"
+"\n"
+"Pode alterar o comportamento deste plugin indo a Gestor de Plugins no menu "
+"Ferramentas, selecionando-o e clicando em Preferências. Pode alterar:\n"
+"Guardar macros ao fechar o Geany - Esta opção fará o Geany guardar todas as "
+"macros existentes, permitindo que as use assim que voltar a abrir o Geany. "
+"Caso contrário, todas as macros serão perdidas ao fechar o Geany.\n"
+"Perguntar antes de substituir macros - Esta opção permite-lhe ter a opção de "
+"dar um novo nome OU uma nova combinação de teclas quando grava uma macro "
+"sobre outra que já existe. Caso contrário, quaisquer macros existentes, com "
+"o mesmo nome OU combinação de teclas serão apagadas."
#: ../geanynumberedbookmarks/src/geanynumberedbookmarks.c:63
msgid "Numbered Bookmarks for Geany"
-msgstr ""
+msgstr "Favoritos Numerados para o Geany"
#. create dialog box
#: ../geanynumberedbookmarks/src/geanynumberedbookmarks.c:814
msgid "Numbered Bookmarks help"
-msgstr ""
+msgstr "Ajuda dos Favoritos Numerados"
#: ../geanynumberedbookmarks/src/geanynumberedbookmarks.c:822
msgid ""
@@ -3259,191 +3313,211 @@
"that the numbered bookmark that you are going to is in the center of the "
"screen, otherwise it will simply be on the screen somewhere."
msgstr ""
+"Este plugin implementa Favoritos Numerados no Geany.\n"
+"\n"
+"Permite usar 10 favoritos numerados. Normalmente se tiver mais do que um "
+"favorito, terá de percorrê-los a todos até chegar ao que pretende. Com este "
+"plugin pode ir diretamente ao favorito que pretende com uma única combinação "
+"de teclas. Para definir um favorito numerado carregue em Ctrl+Shift+um "
+"número de 0 a 9. Verá uma marca aparecer junto do número da linha. Se "
+"carregar em Ctrl+Shift+um número quando está numa linha com favorito "
+"numerado previamente atribuído, irá remover esse favorito. Caso contrário, "
+"irá mover o favorito para a linha em questão se este estava já definido "
+"noutra linha ou cria-o se não estava ainda definido. Apenas o favorito com o "
+"número mais elevado aparecerá, mas pode definir mais do que um por linha. "
+"Este plugin não interfere com o sistema normal de favoritos. Quando guarda "
+"um ficheiro, o Geany irá guardar os seus favoritos numerados e garantir que "
+"serão usados na próxima vez que abrir o mesmo ficheiro.\n"
+"\n"
+"Pode alterar o comportamento deste plugin indo a Gestor de Plugins no menu "
+"Ferramentas, selecionando-o e clicando em Preferências. Pode alterar:\n"
+"Lembrar o estado de agregação - com esta opção ativa, o plugin irá recordar "
+"o estados de quaisquer agregações de código juntamente com os favoritos "
+"numerados e aplica-los-á na próxima vez que abrir o mesmo ficheiro.\n"
+"Centrar vista ao ir para favorito - com esta opção ativa o plugin tentará "
+"garantir que o favorito para onde pretende ir, aparecerá no centro do ecrã, "
+"caso contrário ele irá aparecer num qualquer local do ecrã."
#: ../geanypg/src/decrypt_cb.c:32 ../geanypg/src/encrypt_cb.c:31
#: ../geanypg/src/sign_cb.c:32
-#, fuzzy
msgid "couldn't create tempfile"
-msgstr "Criar um novo ficheiro"
+msgstr "erro ao criar um ficheiro temporário"
#: ../geanypg/src/encrypt_cb.c:75
msgid ""
"No recipients were selected,\n"
"use symetric cipher?"
msgstr ""
+"Nenhum destinatário foi seleccionado,\n"
+"usar cifra simétrica?"
#: ../geanypg/src/geanypg.c:36
msgid "gpg encryption plugin for geany"
-msgstr ""
+msgstr "Plugin encriptação GPG para Geany"
#: ../geanypg/src/geanypg.c:38
msgid "Hans Alves <alves.h88(a)gmail.com>"
-msgstr ""
+msgstr "Hans Alves <alves.h88(a)gmail.com>"
#: ../geanypg/src/geanypg.c:46
msgid "Using libgpgme version:"
-msgstr ""
+msgstr "A usar libgpgme com versão:"
#: ../geanypg/src/geanypg.c:59 ../geanypg/src/geanypg.c:60
-#, fuzzy
msgid "Error from"
-msgstr "Erro:"
+msgstr "Erro de"
#: ../geanypg/src/geanypg.c:78
msgid "Encrypt"
-msgstr ""
+msgstr "Encriptar"
#: ../geanypg/src/geanypg.c:79
msgid "Sign"
-msgstr ""
+msgstr "Assinar"
#: ../geanypg/src/geanypg.c:80
msgid "Decrypt / Verify"
-msgstr ""
+msgstr "Descodificar / Verificar"
#: ../geanypg/src/geanypg.c:81
msgid "Verify detached signature"
-msgstr ""
+msgstr "Verificar assinatura dissociada"
#: ../geanypg/src/key_selection_dialog.c:150
-#, fuzzy
msgid "Please select any recipients"
-msgstr "Eliminar o ponto de observação seleccionado?"
+msgstr "Por favor selecione destinatários"
#: ../geanypg/src/key_selection_dialog.c:152
msgid "Sign the message as:"
-msgstr ""
+msgstr "Assinar a mensagem como:"
#: ../geanypg/src/key_selection_dialog.c:160
-#, fuzzy
msgid "Select recipients"
-msgstr "Seleccionar Directório"
+msgstr "Selecionar destinatários"
#: ../geanypg/src/key_selection_dialog.c:222
msgid "Choose a key to sign with:"
-msgstr ""
+msgstr "Escolha a chave com a qual quer assinar:"
#: ../geanypg/src/key_selection_dialog.c:230
-#, fuzzy
msgid "Select signer"
-msgstr "Seleccionar Ficheiro"
+msgstr "Selecionar assinante"
#. shouldn't get here
#: ../geanypg/src/pinentry.c:103
msgid "Could not use pinentry."
-msgstr ""
+msgstr "Incapaz de usar o comando pinentry."
#: ../geanypg/src/pinentry.c:115
msgid "Unexpected output from pinentry."
-msgstr ""
+msgstr "O comando pinentry retornou um resultado inesperado."
#. read the rest of the first line after OK
#: ../geanypg/src/pinentry.c:123
msgid "Passphrase entry"
-msgstr ""
+msgstr "Introduzir Frase-Senha"
#: ../geanypg/src/pinentry.c:127
msgid "Passphrase"
-msgstr ""
+msgstr "Frase-Senha"
#: ../geanypg/src/pinentry.c:132
msgid "Enter passphrase for"
-msgstr ""
+msgstr "Introduzir Frase-Senha para"
#: ../geanypg/src/pinentry.c:163
msgid "pinentry gave error"
-msgstr ""
+msgstr "o comando pinentry deu erro"
#: ../geanypg/src/pinentry.c:166
msgid "Unexpected error from pinentry."
-msgstr ""
+msgstr "O comando pinentry deu um erro inesperado."
#: ../geanypg/src/pinentry.c:191
msgid ""
"Error, Passphrase input without using gpg-agent is not supported on Windows "
"yet."
msgstr ""
+"Erro, introduzir uma Frase-Senha sem usar o gpg-agent não é suportado pelo "
+"Windows ainda."
#: ../geanypg/src/verify_aux.c:52
msgid "a key with fingerprint"
-msgstr ""
+msgstr "uma chave com fingerprint"
-#: ../geanypg/src/verify_aux.c:65 ../spellcheck/src/gui.c:497
-#: ../spellcheck/src/gui.c:508
+#: ../geanypg/src/verify_aux.c:65 ../spellcheck/src/gui.c:500
+#: ../spellcheck/src/gui.c:511
msgid "unknown"
msgstr "desconhecido"
#: ../geanypg/src/verify_aux.c:66
msgid "undefined"
-msgstr ""
+msgstr "não definido"
#: ../geanypg/src/verify_aux.c:67
-#, fuzzy
msgid "never"
-msgstr "_Reverter"
+msgstr "nunca"
#: ../geanypg/src/verify_aux.c:68
-#, fuzzy
msgid "marginal"
-msgstr "_Original"
+msgstr "marginal"
#: ../geanypg/src/verify_aux.c:69
msgid "full"
-msgstr ""
+msgstr "completo"
#: ../geanypg/src/verify_aux.c:70
msgid "ultimate"
-msgstr ""
+msgstr "inquestionável"
#: ../geanypg/src/verify_aux.c:71 ../geanypg/src/verify_aux.c:73
msgid "[bad validity value]"
-msgstr ""
+msgstr "[mau valor de validação]"
#. buffer should be more than 105 bytes long
#: ../geanypg/src/verify_aux.c:78
msgid " valid"
-msgstr ""
+msgstr "válido"
#: ../geanypg/src/verify_aux.c:79
msgid " green"
-msgstr ""
+msgstr "verde"
#: ../geanypg/src/verify_aux.c:80
msgid " red"
-msgstr ""
+msgstr "vermelho"
#: ../geanypg/src/verify_aux.c:81
msgid " revoked"
-msgstr ""
+msgstr "revogada"
#: ../geanypg/src/verify_aux.c:82
msgid " key-expired"
-msgstr ""
+msgstr "chave-expirou"
#: ../geanypg/src/verify_aux.c:83
msgid " sig-expired"
-msgstr ""
+msgstr "sig-expirou"
#: ../geanypg/src/verify_aux.c:84
msgid " key-missing"
-msgstr ""
+msgstr "falta-chave"
#: ../geanypg/src/verify_aux.c:85
msgid " crl-missing"
-msgstr ""
+msgstr "falta-crl"
#: ../geanypg/src/verify_aux.c:86
msgid " crl-too-old"
-msgstr ""
+msgstr "crl-demasiado-antigo"
#: ../geanypg/src/verify_aux.c:87
-#, fuzzy
msgid " bad-policy"
-msgstr "política de fusão"
+msgstr "má-regra"
#: ../geanypg/src/verify_aux.c:88
msgid " sys-error"
-msgstr ""
+msgstr "erro-sistema"
#: ../geanypg/src/verify_aux.c:95
#, c-format
@@ -3460,116 +3534,123 @@
"other flags:%s%s\n"
"notations .: %s\n"
msgstr ""
+"estado ....: %s\n"
+"sumário ...:%s\n"
+"fingerprint: %s\n"
+"criada ...: %sexpira ...: %svalidade ..: %s\n"
+"razão.val.: %s\n"
+"algo pubkey: %s\n"
+"algo digest: %s\n"
+"endereço pka: %s\n"
+"confiança pka .: %s\n"
+"outras opções:%s%s\n"
+"notações .: %s\n"
#: ../geanypg/src/verify_aux.c:118 ../geanypg/src/verify_aux.c:123
-#, fuzzy
msgid "Unknown\n"
-msgstr "desconhecido"
+msgstr "Desconhecido\n"
#: ../geanypg/src/verify_aux.c:128 ../geanypg/src/verify_aux.c:135
#: ../geanypg/src/verify_aux.c:146 ../geanypg/src/verify_aux.c:153
-#, fuzzy
msgid "[None]"
-msgstr "Nenhum"
+msgstr "[Nada]"
#: ../geanypg/src/verify_aux.c:133 ../geanypg/src/verify_aux.c:134
#: ../geanypg/src/verify_aux.c:151 ../geanypg/src/verify_aux.c:152
-#, fuzzy
msgid "Unknown"
-msgstr "desconhecido"
+msgstr "Desconhecido"
#: ../geanypg/src/verify_aux.c:136 ../geanypg/src/verify_aux.c:154
msgid "n/a"
-msgstr ""
+msgstr "n/d"
#: ../geanypg/src/verify_aux.c:136 ../geanypg/src/verify_aux.c:154
msgid "bad"
-msgstr ""
+msgstr "má"
#: ../geanypg/src/verify_aux.c:136 ../geanypg/src/verify_aux.c:154
msgid "okay"
-msgstr ""
+msgstr "ok"
#: ../geanypg/src/verify_aux.c:136 ../geanypg/src/verify_aux.c:154
msgid "RFU"
-msgstr ""
+msgstr "RFU"
#: ../geanypg/src/verify_aux.c:137 ../geanypg/src/verify_aux.c:155
msgid " wrong-key-usage"
-msgstr ""
+msgstr "uso-errado-da-chave"
#: ../geanypg/src/verify_aux.c:138 ../geanypg/src/verify_aux.c:155
msgid " chain-model"
-msgstr ""
+msgstr "modelo encadeado"
#: ../geanypg/src/verify_aux.c:139 ../geanypg/src/verify_aux.c:156
msgid "yes"
-msgstr ""
+msgstr "sim"
#: ../geanypg/src/verify_aux.c:139 ../geanypg/src/verify_aux.c:156
msgid "no"
-msgstr ""
+msgstr "não"
#: ../geanypg/src/verify_aux.c:175
msgid "Found a signature from"
-msgstr ""
+msgstr "Assinatura encontrada em"
#: ../geanypg/src/verify_aux.c:178
msgid "Signature"
-msgstr ""
+msgstr "Assinatura"
#: ../geanypg/src/verify_aux.c:201
msgid "Could not find verification results"
-msgstr ""
+msgstr "Falha ao encontrar os resultados das verificações"
#: ../geanypg/src/verify_aux.c:202
msgid "Error, could not find verification results"
-msgstr ""
+msgstr "Erro, falha ao encontrar os resultados das verificações"
#: ../geanypg/src/verify_cb.c:26
-#, fuzzy
msgid "Open a signature file"
-msgstr "Abrir Ficheiro"
+msgstr "Abrir ficheiro de assinatura"
-#: ../geanyprj/src/geanyprj.c:37 ../geanyprj/src/sidebar.c:449
-#: ../gproject/src/gproject-sidebar.c:825
+#: ../geanyprj/src/geanyprj.c:38 ../geanyprj/src/sidebar.c:454
+#: ../gproject/src/gproject-sidebar.c:828
msgid "Project"
msgstr "Projecto"
-#: ../geanyprj/src/geanyprj.c:37
+#: ../geanyprj/src/geanyprj.c:38
msgid "Alternative project support."
msgstr "Suporte para projecto alternativo."
-#: ../geanyprj/src/menu.c:90
+#: ../geanyprj/src/menu.c:95
msgid "Project Preferences"
msgstr "Preferências do Projecto"
-#: ../geanyprj/src/menu.c:99 ../geanyprj/src/menu.c:381
-#: ../geanyprj/src/sidebar.c:170
+#: ../geanyprj/src/menu.c:104 ../geanyprj/src/menu.c:386
+#: ../geanyprj/src/sidebar.c:175
msgid "New Project"
msgstr "Novo Projecto"
-#: ../geanyprj/src/menu.c:108
+#: ../geanyprj/src/menu.c:113
msgid "C_reate"
msgstr "C_riar"
-#: ../geanyprj/src/menu.c:121
+#: ../geanyprj/src/menu.c:126
msgid "Name:"
msgstr "Nome:"
-#: ../geanyprj/src/menu.c:130
+#: ../geanyprj/src/menu.c:135
msgid "Location:"
msgstr "Directório:"
-#: ../geanyprj/src/menu.c:145
+#: ../geanyprj/src/menu.c:150
msgid "Choose Project Location"
msgstr "Escolha o directório do Projecto"
-#: ../geanyprj/src/menu.c:153
+#: ../geanyprj/src/menu.c:158
msgid "Base path:"
msgstr "Directório base:"
-#: ../geanyprj/src/menu.c:158
+#: ../geanyprj/src/menu.c:163
msgid ""
"Base directory of all files that make up the project. This can be a new "
"path, or an existing directory tree. You can use paths relative to the "
@@ -3579,15 +3660,15 @@
"ser um directório novo ou um já existente. Pode usar directórios relativos "
"no nome do projecto."
-#: ../geanyprj/src/menu.c:161
+#: ../geanyprj/src/menu.c:166
msgid "Choose Project Base Path"
msgstr "Escolha o Directório Base do Projecto"
-#: ../geanyprj/src/menu.c:168
+#: ../geanyprj/src/menu.c:173
msgid "Generate file list on load"
msgstr "Gerar lista de ficheiros no arranque"
-#: ../geanyprj/src/menu.c:170
+#: ../geanyprj/src/menu.c:175
msgid ""
"Automatically add files that match project type on project load "
"automatically. You can't manually add/remove files if you checked this "
@@ -3598,72 +3679,71 @@
"manualmente ficheiros se activou esta opção, dado que a sua modificação será "
"descartada no próximo carregamento do projecto"
-#: ../geanyprj/src/menu.c:178
+#: ../geanyprj/src/menu.c:183
msgid "Type:"
msgstr "Tipo:"
-#: ../geanyprj/src/menu.c:216
+#: ../geanyprj/src/menu.c:221
#, c-format
msgid "Project file \"%s\" already exists"
msgstr "Ficheiro de projecto \"%s\" já existe"
-#: ../geanyprj/src/menu.c:369
+#: ../geanyprj/src/menu.c:374
msgid "_Project"
msgstr "_Projecto"
-#: ../geanyprj/src/menu.c:390 ../geanyprj/src/sidebar.c:179
+#: ../geanyprj/src/menu.c:395 ../geanyprj/src/sidebar.c:184
msgid "Delete Project"
msgstr "Eliminar Projecto"
-#: ../geanyprj/src/menu.c:401 ../geanyprj/src/sidebar.c:192
+#: ../geanyprj/src/menu.c:406 ../geanyprj/src/sidebar.c:197
msgid "Add File"
msgstr "Adicionar ficheiro"
-#: ../geanyprj/src/menu.c:423 ../geanyprj/src/sidebar.c:227
+#: ../geanyprj/src/menu.c:428 ../geanyprj/src/sidebar.c:232
msgid "Find in Project"
msgstr "Procurar no Projecto"
-#: ../geanyprj/src/sidebar.c:201
+#: ../geanyprj/src/sidebar.c:206
msgid "Remove File"
msgstr "Remover Ficheiro"
-#: ../geanyprj/src/sidebar.c:238 ../gproject/src/gproject-sidebar.c:806
+#: ../geanyprj/src/sidebar.c:243 ../gproject/src/gproject-sidebar.c:809
msgid "H_ide Sidebar"
msgstr "Esconder Barra _Lateral"
-#: ../geanyprj/src/xproject.c:95
+#: ../geanyprj/src/xproject.c:100
#, c-format
msgid "Project \"%s\" opened."
msgstr "Projecto \"%s\" aberto."
-#: ../geanysendmail/src/geanysendmail.c:46
+#: ../geanysendmail/src/geanysendmail.c:43
msgid "GeanySendMail"
msgstr "GeanyEnviaEmail"
-#: ../geanysendmail/src/geanysendmail.c:47
-#, fuzzy
+#: ../geanysendmail/src/geanysendmail.c:44
msgid ""
"A little plugin to send the current file as attachment by user's favorite "
"mailer"
msgstr ""
-"Um pequeno plugin que permite o envio do ficheiro actual como anexo, usando "
-"o seu programa de email favorito"
+"Um pequeno plugin que permite enviar o ficheiro actual como anexo, usando o "
+"seu programa de email favorito"
-#: ../geanysendmail/src/geanysendmail.c:101
+#: ../geanysendmail/src/geanysendmail.c:98
msgid "Recipient's Address"
msgstr "Endereço de Destino"
-#: ../geanysendmail/src/geanysendmail.c:103
+#: ../geanysendmail/src/geanysendmail.c:100
msgid "Enter the recipient's e-mail address:"
msgstr "Introduza o endereço de email de destino:"
-#: ../geanysendmail/src/geanysendmail.c:139
+#: ../geanysendmail/src/geanysendmail.c:136
msgid "Filename placeholder not found. The executed command might have failed."
msgstr ""
"O espaço reservado para o nome do ficheiro não encontrado. O comando "
"executado pode ter falhado."
-#: ../geanysendmail/src/geanysendmail.c:145
+#: ../geanysendmail/src/geanysendmail.c:142
msgid ""
"Recipient address placeholder not found. The executed command might have "
"failed."
@@ -3671,34 +3751,34 @@
"O espaço reservado para o endereço de email de destino não encontrado. O "
"comando executado pode ter falhado."
-#: ../geanysendmail/src/geanysendmail.c:160
+#: ../geanysendmail/src/geanysendmail.c:157
msgid "Could not execute mailer. Please check your configuration."
msgstr ""
"Incapaz de executar a aplicação de Email. Por favor, verifique a "
"configuração."
-#: ../geanysendmail/src/geanysendmail.c:169
+#: ../geanysendmail/src/geanysendmail.c:166
msgid "Please define a mail client first."
msgstr "Defina uma aplicação de Email primeiro, se faz favor."
-#: ../geanysendmail/src/geanysendmail.c:174
+#: ../geanysendmail/src/geanysendmail.c:171
msgid "File has to be saved before sending."
msgstr "O ficheiro tem de ser guardado antes de ser enviado."
-#: ../geanysendmail/src/geanysendmail.c:190
+#: ../geanysendmail/src/geanysendmail.c:187
msgid "Mail"
msgstr "Mail"
-#: ../geanysendmail/src/geanysendmail.c:221
+#: ../geanysendmail/src/geanysendmail.c:218
msgid "Send by mail"
msgstr "Enviar por email"
#. add a label and a text entry to the dialog
-#: ../geanysendmail/src/geanysendmail.c:306
+#: ../geanysendmail/src/geanysendmail.c:303
msgid "Path and options for the mail client:"
msgstr "Directório e opções para a aplicação de email:"
-#: ../geanysendmail/src/geanysendmail.c:314
+#: ../geanysendmail/src/geanysendmail.c:311
msgid ""
"Note: \n"
"\t\\%f will be replaced by your file.\n"
@@ -3716,119 +3796,118 @@
"\tsylpheed --attach \"\\%f\" --compose \"\\%r\"\n"
"\tmutt -s \"Sending '\\%b'\" -a \"\\%f\" \"\\%r\""
-#: ../geanysendmail/src/geanysendmail.c:324
+#: ../geanysendmail/src/geanysendmail.c:321
msgid "Show toolbar icon"
msgstr "Mostrar ícone da barra de ferramentas"
-#: ../geanysendmail/src/geanysendmail.c:326
+#: ../geanysendmail/src/geanysendmail.c:323
msgid "Shows a icon in the toolbar to send file more easy."
msgstr ""
"Mostra um ícone na barra de ferramentas para facilitar o envio de ficheiros."
-#: ../geanysendmail/src/geanysendmail.c:332
+#: ../geanysendmail/src/geanysendmail.c:329
msgid "Use dialog for entering email address of recipients"
msgstr "Usar a janela para introduzir os endereços de email de destino"
-#: ../geanysendmail/src/geanysendmail.c:354
+#: ../geanysendmail/src/geanysendmail.c:351
msgid "Send file by mail"
msgstr "Enviar ficheiro por email"
#. Build up menu entry
-#: ../geanysendmail/src/geanysendmail.c:379
+#: ../geanysendmail/src/geanysendmail.c:374
msgid "_Mail document"
msgstr "E_mail o documento"
-#: ../geanysendmail/src/geanysendmail.c:382
+#: ../geanysendmail/src/geanysendmail.c:377
msgid ""
"Sends the opened file as unzipped attachment by any mailer from your $PATH"
msgstr ""
"Envia o ficheiro aberto como um anexo, não compactado, por qualquer "
"aplicação presente na $PATH"
-#: ../geanyvc/src/geanyvc.c:51
+#: ../geanyvc/src/geanyvc.c:53
msgid "GeanyVC"
msgstr "GeanyVC"
-#: ../geanyvc/src/geanyvc.c:52
+#: ../geanyvc/src/geanyvc.c:54
msgid "Interface to different Version Control systems."
msgstr "Interface para diferentes Sistemas de Controlo de Versões (SCV)."
-#: ../geanyvc/src/geanyvc.c:464
+#: ../geanyvc/src/geanyvc.c:466
#, c-format
msgid "geanyvc: s_spawn_sync error: %s"
msgstr "geanyvc: erro s_spawn_sync: %s"
-#: ../geanyvc/src/geanyvc.c:598 ../geanyvc/src/geanyvc.c:609
+#: ../geanyvc/src/geanyvc.c:600 ../geanyvc/src/geanyvc.c:611
#, c-format
msgid "geanyvc: vcdiff_file_activated: Unable to rename '%s' to '%s'"
msgstr "geanyvc: vcdiff_file_activated: Incapaz de renomear '%s' to '%s'"
-#: ../geanyvc/src/geanyvc.c:635 ../geanyvc/src/geanyvc.c:685
+#: ../geanyvc/src/geanyvc.c:637 ../geanyvc/src/geanyvc.c:687
msgid "No changes were made."
msgstr "Não foram efectuadas quaisquer alterações."
-#: ../geanyvc/src/geanyvc.c:711
+#: ../geanyvc/src/geanyvc.c:713
msgid "No history avaible"
msgstr "Nenhum histórico disponível"
-#: ../geanyvc/src/geanyvc.c:904 ../geanyvc/src/geanyvc.c:912
+#: ../geanyvc/src/geanyvc.c:906 ../geanyvc/src/geanyvc.c:914
#, c-format
msgid "Do you really want to revert: %s?"
msgstr "Tem a certeza de que pretende reverter: %s?"
-#: ../geanyvc/src/geanyvc.c:920
+#: ../geanyvc/src/geanyvc.c:922
#, c-format
msgid "Do you really want to add: %s?"
msgstr "Tem a certeza de que pretende adicionar: %s?"
-#: ../geanyvc/src/geanyvc.c:927
+#: ../geanyvc/src/geanyvc.c:929
#, c-format
msgid "Do you really want to remove: %s?"
msgstr "Tem a certeza de que pretende remover: %s?"
-#: ../geanyvc/src/geanyvc.c:950
+#: ../geanyvc/src/geanyvc.c:952
msgid "Do you really want to update?"
msgstr "Tem a certeza de que pretende actualizar?"
-#: ../geanyvc/src/geanyvc.c:1213
+#: ../geanyvc/src/geanyvc.c:1215
msgid "Commit Y/N"
msgstr "Submeter Y/N"
-#: ../geanyvc/src/geanyvc.c:1223
+#: ../geanyvc/src/geanyvc.c:1225
msgid "Status"
msgstr "Estado"
-#: ../geanyvc/src/geanyvc.c:1230
+#: ../geanyvc/src/geanyvc.c:1232
msgid "Path"
msgstr "Directório"
-#: ../geanyvc/src/geanyvc.c:1318
+#: ../geanyvc/src/geanyvc.c:1320
msgid "Commit"
msgstr "Submeter"
-#: ../geanyvc/src/geanyvc.c:1360
+#: ../geanyvc/src/geanyvc.c:1362
msgid "_De-/select all files"
msgstr "_Des-/seleccionar todos os ficheiros"
-#: ../geanyvc/src/geanyvc.c:1401
+#: ../geanyvc/src/geanyvc.c:1403
msgid "<b>Commit message:</b>"
msgstr "<b>Mensagem de submissão:</b>"
-#: ../geanyvc/src/geanyvc.c:1414
-#, fuzzy
+#: ../geanyvc/src/geanyvc.c:1416
msgid "C_ommit"
-msgstr "Submeter"
+msgstr "_Submeter"
-#: ../geanyvc/src/geanyvc.c:1488
+#: ../geanyvc/src/geanyvc.c:1490
msgid "Nothing to commit."
msgstr "Nada para submeter."
-#: ../geanyvc/src/geanyvc.c:1534
+#: ../geanyvc/src/geanyvc.c:1536
#, c-format
msgid "Error initializing spell checking: %s"
msgstr "Falha ao inicializar a correcção ortográfica: %s"
-#: ../geanyvc/src/geanyvc.c:1546
+#: ../geanyvc/src/geanyvc.c:1548
#, c-format
msgid ""
"Error while setting up language for spellchecking. Please check "
@@ -3837,13 +3916,13 @@
"Falha ao definir a linguagem para a correcção ortográfica. Por favor "
"verifique a configuração. A mensagem de erro obtida foi: %s"
-#: ../geanyvc/src/geanyvc.c:1818
+#: ../geanyvc/src/geanyvc.c:1820
msgid "Set Changed-flag for document tabs created by the plugin"
msgstr ""
"Habilitar a indicação de Modificado nas abas dos documentos criados pelo "
"plugin"
-#: ../geanyvc/src/geanyvc.c:1821
+#: ../geanyvc/src/geanyvc.c:1823
msgid ""
"If this option is activated, every new by the VC-plugin created document tab "
"will be marked as changed. Even this option is useful in some cases, it "
@@ -3854,222 +3933,222 @@
"alguns casos pode gerar um elevado número de, irritantes, janelas \"Tem a "
"certeza de que quer guardar\" "
-#: ../geanyvc/src/geanyvc.c:1829
+#: ../geanyvc/src/geanyvc.c:1831
msgid "Confirm adding new files to a VCS"
msgstr "Confirmar o adicionar de novos ficheiros a um SCV"
-#: ../geanyvc/src/geanyvc.c:1832
+#: ../geanyvc/src/geanyvc.c:1834
msgid "Shows a confirmation dialog on adding a new (created) file to VCS."
msgstr ""
"Mostra uma janela de confirmação sempre que adicionar um novo (criado) "
"ficheiro ao SCV."
-#: ../geanyvc/src/geanyvc.c:1838
+#: ../geanyvc/src/geanyvc.c:1840
msgid "Maximize commit dialog"
msgstr "Maximizar janela de submissão"
-#: ../geanyvc/src/geanyvc.c:1839
+#: ../geanyvc/src/geanyvc.c:1841
msgid "Show commit dialog maximize."
msgstr "Mostra a janela de submissão maximizada."
-#: ../geanyvc/src/geanyvc.c:1845
+#: ../geanyvc/src/geanyvc.c:1847
msgid "Use external diff viewer"
msgstr "Usar aplicação de diferenças externa"
-#: ../geanyvc/src/geanyvc.c:1847
+#: ../geanyvc/src/geanyvc.c:1849
msgid "Use external diff viewer for file diff."
msgstr ""
"Usar uma aplicação de diferenças externa para a função de diferenças (diff)."
-#: ../geanyvc/src/geanyvc.c:1853
+#: ../geanyvc/src/geanyvc.c:1855
msgid "Show VC entries at editor menu"
msgstr "Mostrar elementos do VC no menu do editor"
-#: ../geanyvc/src/geanyvc.c:1855
+#: ../geanyvc/src/geanyvc.c:1857
msgid "Show entries for VC functions inside editor menu"
msgstr "Mostra elementos das funções do VC dentro do menu do editor"
-#: ../geanyvc/src/geanyvc.c:1860
+#: ../geanyvc/src/geanyvc.c:1862
msgid "Enable CVS"
msgstr "Habilitar CVS"
-#: ../geanyvc/src/geanyvc.c:1865
+#: ../geanyvc/src/geanyvc.c:1867
msgid "Enable GIT"
msgstr "Habilitar GIT"
-#: ../geanyvc/src/geanyvc.c:1870
+#: ../geanyvc/src/geanyvc.c:1872
msgid "Enable SVN"
msgstr "Habilitar SVN"
-#: ../geanyvc/src/geanyvc.c:1875
+#: ../geanyvc/src/geanyvc.c:1877
msgid "Enable SVK"
msgstr "Habilitar SVK"
-#: ../geanyvc/src/geanyvc.c:1880
+#: ../geanyvc/src/geanyvc.c:1882
msgid "Enable Bazaar"
msgstr "Habilitar Bazaar"
-#: ../geanyvc/src/geanyvc.c:1885
+#: ../geanyvc/src/geanyvc.c:1887
msgid "Enable Mercurial"
msgstr "Habilitar Mercurial"
-#: ../geanyvc/src/geanyvc.c:1891
+#: ../geanyvc/src/geanyvc.c:1893
msgid "Spellcheck language"
msgstr "Língua para correcção ortográfica"
-#: ../geanyvc/src/geanyvc.c:1980
+#: ../geanyvc/src/geanyvc.c:1982
msgid "_VC file Actions"
msgstr "_VC Acções sobre ficheiros"
-#: ../geanyvc/src/geanyvc.c:1982
+#: ../geanyvc/src/geanyvc.c:1984
msgid "_File"
msgstr "_Ficheiro"
#. Diff of current file
#. Diff of the current dir
#. Complete diff of base directory
-#: ../geanyvc/src/geanyvc.c:1986 ../geanyvc/src/geanyvc.c:2063
-#: ../geanyvc/src/geanyvc.c:2103
+#: ../geanyvc/src/geanyvc.c:1988 ../geanyvc/src/geanyvc.c:2065
+#: ../geanyvc/src/geanyvc.c:2105
msgid "_Diff"
msgstr "_Diferenças"
-#: ../geanyvc/src/geanyvc.c:1989
+#: ../geanyvc/src/geanyvc.c:1991
msgid "Make a diff from the current active file"
msgstr "Inicia uma comparação de diferenças no ficheiro activo"
#. Revert current file
#. Revert current dir
#. Revert everything
-#: ../geanyvc/src/geanyvc.c:1994 ../geanyvc/src/geanyvc.c:2072
-#: ../geanyvc/src/geanyvc.c:2111
+#: ../geanyvc/src/geanyvc.c:1996 ../geanyvc/src/geanyvc.c:2074
+#: ../geanyvc/src/geanyvc.c:2113
msgid "_Revert"
msgstr "_Reverter"
-#: ../geanyvc/src/geanyvc.c:1997
+#: ../geanyvc/src/geanyvc.c:1999
msgid "Restore pristine working copy file (undo local edits)."
msgstr ""
"Restaurar a antiga cópia funcional do ficheiro (descarta alterações locais)."
#. Blame for current file
-#: ../geanyvc/src/geanyvc.c:2006
+#: ../geanyvc/src/geanyvc.c:2008
msgid "_Blame"
msgstr "_Culpar"
-#: ../geanyvc/src/geanyvc.c:2009
+#: ../geanyvc/src/geanyvc.c:2011
msgid "Shows the changes made at one file per revision and author."
msgstr "Mostra as alterações realizadas a um ficheiro por revisão e autor."
#. History/log of current file
#. History/log of the current dir
#. Complete History/Log of base directory
-#: ../geanyvc/src/geanyvc.c:2016 ../geanyvc/src/geanyvc.c:2082
-#: ../geanyvc/src/geanyvc.c:2123
+#: ../geanyvc/src/geanyvc.c:2018 ../geanyvc/src/geanyvc.c:2084
+#: ../geanyvc/src/geanyvc.c:2125
msgid "_History (log)"
msgstr "_Histórico (log)"
-#: ../geanyvc/src/geanyvc.c:2019
+#: ../geanyvc/src/geanyvc.c:2021
msgid "Shows the log of the current file"
msgstr "Mostra o histórico do ficheiro activo"
#. base version of the current file
-#: ../geanyvc/src/geanyvc.c:2024
+#: ../geanyvc/src/geanyvc.c:2026
msgid "_Original"
msgstr "_Original"
-#: ../geanyvc/src/geanyvc.c:2027
+#: ../geanyvc/src/geanyvc.c:2029
msgid "Shows the orignal of the current file"
msgstr "Mostra o original do ficheiro activo"
#. add current file
-#: ../geanyvc/src/geanyvc.c:2035
+#: ../geanyvc/src/geanyvc.c:2037
msgid "_Add to Version Control"
msgstr "_Adicionar ao Controlo de Versões"
-#: ../geanyvc/src/geanyvc.c:2037
+#: ../geanyvc/src/geanyvc.c:2039
msgid "Add file to repository."
msgstr "Adiciona o ficheiro ao repositório."
#. remove current file
-#: ../geanyvc/src/geanyvc.c:2043
+#: ../geanyvc/src/geanyvc.c:2045
msgid "_Remove from Version Control"
msgstr "_Remover do Controlo de Versões"
-#: ../geanyvc/src/geanyvc.c:2045
+#: ../geanyvc/src/geanyvc.c:2047
msgid "Remove file from repository."
msgstr "Remove o ficheiro do repositório."
-#: ../geanyvc/src/geanyvc.c:2060
+#: ../geanyvc/src/geanyvc.c:2062
msgid "_Directory"
msgstr "_Directório"
-#: ../geanyvc/src/geanyvc.c:2066
+#: ../geanyvc/src/geanyvc.c:2068
msgid "Make a diff from the directory of the current active file"
msgstr "Inicia uma comparação de diferenças no directório do ficheiro activo"
-#: ../geanyvc/src/geanyvc.c:2075
+#: ../geanyvc/src/geanyvc.c:2077
msgid "Restore original files in the current folder (undo local edits)."
msgstr ""
"Restaura os ficheiros originais no directório actual (descarta alterações "
"locais)."
-#: ../geanyvc/src/geanyvc.c:2085
+#: ../geanyvc/src/geanyvc.c:2087
msgid "Shows the log of the current directory"
msgstr "Mostra o histórico (log) do directório actual"
-#: ../geanyvc/src/geanyvc.c:2099
+#: ../geanyvc/src/geanyvc.c:2101
msgid "_Base Directory"
msgstr "Directório _Base"
-#: ../geanyvc/src/geanyvc.c:2105
+#: ../geanyvc/src/geanyvc.c:2107
msgid "Make a diff from the top VC directory"
msgstr ""
"Inicia uma comparação de diferenças a partir do primeiro directório do VC"
-#: ../geanyvc/src/geanyvc.c:2113
+#: ../geanyvc/src/geanyvc.c:2115
msgid "Revert any local edits."
msgstr "Restaura quaisquer alterações locais."
-#: ../geanyvc/src/geanyvc.c:2126
+#: ../geanyvc/src/geanyvc.c:2128
msgid "Shows the log of the top VC directory"
msgstr "Mostra o histórico (log) do primeiro directório do VC"
-#: ../geanyvc/src/geanyvc.c:2152
+#: ../geanyvc/src/geanyvc.c:2154
msgid "VC _Commit"
msgstr "VC _Submeter"
-#: ../geanyvc/src/geanyvc.c:2187
+#: ../geanyvc/src/geanyvc.c:2189
msgid "Show diff of file"
msgstr "Mostrar diferenças do ficheiro"
-#: ../geanyvc/src/geanyvc.c:2189
+#: ../geanyvc/src/geanyvc.c:2191
msgid "Show diff of directory"
msgstr "Mostrar diferenças do directório"
-#: ../geanyvc/src/geanyvc.c:2191
+#: ../geanyvc/src/geanyvc.c:2193
msgid "Show diff of basedir"
msgstr "Mostrar diferenças do directório base"
-#: ../geanyvc/src/geanyvc.c:2194
+#: ../geanyvc/src/geanyvc.c:2196
msgid "Commit changes"
msgstr "Submeter alterações"
-#: ../geanyvc/src/geanyvc.c:2196
+#: ../geanyvc/src/geanyvc.c:2198
msgid "Show status"
msgstr "Mostrar estado"
-#: ../geanyvc/src/geanyvc.c:2198
+#: ../geanyvc/src/geanyvc.c:2200
msgid "Revert single file"
msgstr "Restaurar ficheiro único"
-#: ../geanyvc/src/geanyvc.c:2200
+#: ../geanyvc/src/geanyvc.c:2202
msgid "Revert directory"
msgstr "Restaurar directório"
-#: ../geanyvc/src/geanyvc.c:2202
+#: ../geanyvc/src/geanyvc.c:2204
msgid "Revert base directory"
msgstr "Restaurar directório base"
-#: ../geanyvc/src/geanyvc.c:2204
+#: ../geanyvc/src/geanyvc.c:2206
msgid "Update file"
msgstr "Actualizar ficheiro"
@@ -4099,238 +4178,268 @@
msgid "Commit changes."
msgstr "Submeter alterações."
-#: ../gproject/src/gproject-main.c:33 ../gproject/src/gproject-project.c:445
-#, fuzzy
+#: ../gproject/src/gproject-main.c:36 ../gproject/src/gproject-project.c:448
msgid "GProject"
-msgstr "Projecto"
+msgstr "ProjectoG"
-#: ../gproject/src/gproject-main.c:34
+#: ../gproject/src/gproject-main.c:37
msgid "Glob-pattern-based project management plugin for Geany."
-msgstr ""
+msgstr "Plugin para gestão de projetos Geany baseado em padrões Glob"
-#: ../gproject/src/gproject-menu.c:350
-#, fuzzy
+#: ../gproject/src/gproject-menu.c:353
msgid "Find in Project Files"
-msgstr "Procurar no Projecto"
+msgstr "Procurar em ficheiros de Projeto"
-#: ../gproject/src/gproject-menu.c:356
-#, fuzzy
+#: ../gproject/src/gproject-menu.c:359
msgid "Find in project files"
-msgstr "Procurar no Projecto"
+msgstr "Procurar em ficheiros de projeto"
-#: ../gproject/src/gproject-menu.c:360
-#, fuzzy
+#: ../gproject/src/gproject-menu.c:363
msgid "Find Project File"
-msgstr "Procurar no Projecto"
+msgstr "Procurar ficheiro de Projecto"
-#: ../gproject/src/gproject-menu.c:366
-#, fuzzy
+#: ../gproject/src/gproject-menu.c:369
msgid "Find project file"
-msgstr "Ocultar ficheiros objecto"
+msgstr "Procurar ficheiro de projecto"
-#: ../gproject/src/gproject-menu.c:368
+#: ../gproject/src/gproject-menu.c:371
msgid "Swap Header/Source"
-msgstr ""
+msgstr "Trocar Cabeçalho/Código"
-#: ../gproject/src/gproject-menu.c:373
+#: ../gproject/src/gproject-menu.c:376
msgid "Swap header/source"
-msgstr ""
+msgstr "Trocar cabeçalho/código"
-#: ../gproject/src/gproject-menu.c:379
+#: ../gproject/src/gproject-menu.c:382
msgid "Open Selected File (gproject)"
-msgstr ""
+msgstr "Abrir ficheiro selecionado (projectoG)"
-#: ../gproject/src/gproject-project.c:396
+#: ../gproject/src/gproject-project.c:399
msgid "Source patterns:"
-msgstr ""
+msgstr "Padrões de ficheiros de código:"
-#: ../gproject/src/gproject-project.c:402
+#: ../gproject/src/gproject-project.c:405
msgid ""
"Space separated list of patterns that are used to identify source files."
msgstr ""
+"Lista separada por espaços, de padrões a ser usados para identificar "
+"ficheiros de código."
-#: ../gproject/src/gproject-project.c:407
-#, fuzzy
+#: ../gproject/src/gproject-project.c:410
msgid "Header patterns:"
-msgstr "Extensões de Cabeçalho"
+msgstr "Padrões de ficheiros de cabeçalhos:"
-#: ../gproject/src/gproject-project.c:413
+#: ../gproject/src/gproject-project.c:416
msgid ""
"Space separated list of patterns that are used to identify headers. Used "
"mainly for header/source swapping."
msgstr ""
+"Lista separada por espaços, de padrões a ser usados para identificar "
+"ficheiros de cabeçalhos. Usado essencialemente para alternar entre ficheiros "
+"de cabeçalho/código."
-#: ../gproject/src/gproject-project.c:419
+#: ../gproject/src/gproject-project.c:422
msgid "Ignored dirs patterns:"
-msgstr ""
+msgstr "Padrões para diretórios a ignorar:"
-#: ../gproject/src/gproject-project.c:425
+#: ../gproject/src/gproject-project.c:428
msgid ""
"Space separated list of patterns that are used to identify directories that "
"are not scanned for source files."
msgstr ""
+"Lista separada por espaços, de padrões a ser usados para identificar "
+"diretórios onde não se procurarão ficheiros de código."
-#: ../gproject/src/gproject-project.c:433
+#: ../gproject/src/gproject-project.c:436
msgid "Generate tags for all project files"
-msgstr ""
+msgstr "Gerar etiquetas para todos os ficheiros do projecto"
-#: ../gproject/src/gproject-project.c:435
+#: ../gproject/src/gproject-project.c:438
msgid ""
"Generate tag list for all project files instead of only for the currently "
"opened files. Too slow for big projects (>1000 files) and should be disabled "
"in this case."
msgstr ""
+"Gerar etiquetas para todos os ficheiros do projeto e não apenas para os "
+"atualmente abertos. Demasiado lento para projetos grandes (>1000 ficheiros) "
+"e deve ser desativado nesse caso."
-#: ../gproject/src/gproject-project.c:441
+#: ../gproject/src/gproject-project.c:444
msgid ""
"Note: set the patterns of files belonging to the project under the Project "
"tab."
msgstr ""
+"Nota: defina padrões para ficheiros pertencentes ao projeto através do menu "
+"Projeto."
-#: ../gproject/src/gproject-sidebar.c:78
-#: ../gproject/src/gproject-sidebar.c:795
-#, fuzzy
+#: ../gproject/src/gproject-sidebar.c:81
+#: ../gproject/src/gproject-sidebar.c:798
msgid "Find File"
-msgstr "Adicionar ficheiro"
+msgstr "Procurar Ficheiro"
-#: ../gproject/src/gproject-sidebar.c:89
-#, fuzzy
+#: ../gproject/src/gproject-sidebar.c:92
msgid "Search for:"
-msgstr "Símbolos a Pesquisar:"
+msgstr "Procurar por:"
-#: ../gproject/src/gproject-sidebar.c:105
-#, fuzzy
+#: ../gproject/src/gproject-sidebar.c:108
msgid "Search inside:"
-msgstr "Símbolos a Pesquisar:"
+msgstr "Procurar dentro:"
-#: ../gproject/src/gproject-sidebar.c:117
+#: ../gproject/src/gproject-sidebar.c:120
msgid "C_ase sensitive"
-msgstr ""
+msgstr "Distinguir m_aiúsculas/minúsculas"
-#: ../gproject/src/gproject-sidebar.c:120
+#: ../gproject/src/gproject-sidebar.c:123
msgid "Search in full path"
-msgstr ""
+msgstr "Procurar em directório absoluto"
-#: ../gproject/src/gproject-sidebar.c:705
-#, fuzzy
+#: ../gproject/src/gproject-sidebar.c:708
msgid "Reload all"
-msgstr "Expandir Tudo"
+msgstr "Reler todos"
-#: ../gproject/src/gproject-sidebar.c:714
+#: ../gproject/src/gproject-sidebar.c:717
#: ../treebrowser/src/treebrowser.c:1260
msgid "Expand all"
msgstr "Expandir Tudo"
-#: ../gproject/src/gproject-sidebar.c:720
+#: ../gproject/src/gproject-sidebar.c:723
#: ../treebrowser/src/treebrowser.c:1264
msgid "Collapse all"
msgstr "Compactar Tudo"
-#: ../gproject/src/gproject-sidebar.c:729
+#: ../gproject/src/gproject-sidebar.c:732
msgid "Follow active editor"
-msgstr ""
+msgstr "Seguir o editor ativo"
-#: ../gproject/src/gproject-sidebar.c:777
-#, fuzzy
+#: ../gproject/src/gproject-sidebar.c:780
msgid "Expand All"
msgstr "Expandir Tudo"
-#: ../gproject/src/gproject-sidebar.c:786
+#: ../gproject/src/gproject-sidebar.c:789
#: ../treebrowser/src/treebrowser.c:1212
-#, fuzzy
msgid "Find in Files"
-msgstr "Procurar no Projecto"
+msgstr "Procurar em Ficheiros"
+#: ../pretty-printer/src/PluginEntry.c:37
+msgid "XML PrettyPrinter"
+msgstr "ImpressãoBonita XML"
+
+#: ../pretty-printer/src/PluginEntry.c:38
+msgid "Formats an XML and makes it human-readable."
+msgstr "Formata um XML e torna-o humanamente legível."
+
+#. put the menu into the Tools
+#: ../pretty-printer/src/PluginEntry.c:66
+msgid "PrettyPrinter XML"
+msgstr "ImpressãoBonita XML"
+
+#: ../pretty-printer/src/PluginEntry.c:74
+msgid "Run the PrettyPrinter XML"
+msgstr "Executar a ImpressãoBonita XML"
+
+#: ../pretty-printer/src/PluginEntry.c:139
+msgid "Unable to parse the content as XML."
+msgstr "Incapaz de analisar o conteúdo como XML."
+
+#: ../pretty-printer/src/PluginEntry.c:150
+msgid ""
+"Unable to process PrettyPrinting on the specified XML because some features "
+"are not supported.\n"
+"\n"
+"See Help > Debug messages for more details..."
+msgstr ""
+"Incapaz de processar ImpressãoBonita neste XML específico devido a "
+"funcionalidades não suportadas.\n"
+"\n"
+"Veja Ajuda > Mensagens de Depuração para mais detalhes..."
+
#: ../pretty-printer/src/ConfigUI.c:62
-#, fuzzy
msgid "Comments"
-msgstr "Conteúdo"
+msgstr "Comentários"
#: ../pretty-printer/src/ConfigUI.c:62 ../pretty-printer/src/ConfigUI.c:63
#: ../pretty-printer/src/ConfigUI.c:64
msgid "Put on one line"
-msgstr ""
+msgstr "Colocar numa linha"
#: ../pretty-printer/src/ConfigUI.c:62 ../pretty-printer/src/ConfigUI.c:63
#: ../pretty-printer/src/ConfigUI.c:64
msgid "Inline if possible"
-msgstr ""
+msgstr "Em linha, se possível"
#: ../pretty-printer/src/ConfigUI.c:62 ../pretty-printer/src/ConfigUI.c:63
#: ../pretty-printer/src/ConfigUI.c:64
msgid "Alignment"
-msgstr ""
+msgstr "Alinhamento"
#: ../pretty-printer/src/ConfigUI.c:63
msgid "Text nodes"
-msgstr ""
+msgstr "Nós de texto"
#: ../pretty-printer/src/ConfigUI.c:64
msgid "CDATA"
-msgstr ""
+msgstr "CDATA"
#: ../pretty-printer/src/ConfigUI.c:193
-#, fuzzy
msgid "Empty nodes"
-msgstr "(Linha em Branco)"
+msgstr "Nós vazios"
#: ../pretty-printer/src/ConfigUI.c:194
msgid "Concatenation (<x></x> to <x/>)"
-msgstr ""
+msgstr "Concatenação (<x></x> to <x/>)"
#: ../pretty-printer/src/ConfigUI.c:195
msgid "Spacing (<x/> to <x />)"
-msgstr ""
+msgstr "Espaçamento (<x/> to <x />)"
#: ../pretty-printer/src/ConfigUI.c:196
msgid "Expansion (<x/> to <x></x>)"
-msgstr ""
+msgstr "Expansão (<x/> to <x></x>)"
#: ../pretty-printer/src/ConfigUI.c:223
-#, fuzzy
msgid "Indentation"
-msgstr "Apresentação"
+msgstr "Indentação"
#: ../pretty-printer/src/ConfigUI.c:227
msgid "Tab"
-msgstr ""
+msgstr "Tab"
#: ../pretty-printer/src/ConfigUI.c:228
msgid "Space"
-msgstr ""
+msgstr "Espaço"
#: ../pretty-printer/src/ConfigUI.c:252
msgid "Line break"
-msgstr ""
+msgstr "Quebra de linha"
-#: ../spellcheck/src/speller.c:91
+#: ../spellcheck/src/speller.c:94
msgid "Try: "
msgstr "Tentar:"
-#: ../spellcheck/src/speller.c:170
+#: ../spellcheck/src/speller.c:173
msgid "Checking"
msgstr "A verificar"
-#: ../spellcheck/src/speller.c:183
+#: ../spellcheck/src/speller.c:186
#, c-format
msgid "Checking file \"%s\" (lines %d to %d using %s):"
msgstr "A verificar ficheiro \"%s\" (linhas %d até %d usando %s):"
-#: ../spellcheck/src/speller.c:193
+#: ../spellcheck/src/speller.c:196
#, c-format
msgid "Checking file \"%s\" (using %s):"
msgstr "A verificar \"%s\" (usando %s):"
-#: ../spellcheck/src/speller.c:220
+#: ../spellcheck/src/speller.c:223
msgid "The checked text is spelled correctly."
msgstr "O texto verificado não contém erros ortográficos."
-#: ../spellcheck/src/speller.c:230
+#: ../spellcheck/src/speller.c:233
#, c-format
msgid "The Enchant library couldn't be initialized (%s)."
msgstr "A biblioteca Enchant não pode ser inicializada (%s)."
-#: ../spellcheck/src/speller.c:231
+#: ../spellcheck/src/speller.c:234
msgid "unknown error (maybe the chosen language is not available)"
msgstr ""
"erro desconhecido (talvez a língua que escolheu não se encontre disponível)"
@@ -4390,15 +4499,15 @@
"Ler dicionários adicionais deste directório. De momento, apenas funciona com "
"dicionários \"myspell\"."
-#: ../spellcheck/src/gui.c:65
+#: ../spellcheck/src/gui.c:68
msgid "Spell checking while typing is now enabled"
msgstr "Correcção ortográfica enquanto tecla encontra-se activa agora"
-#: ../spellcheck/src/gui.c:67
+#: ../spellcheck/src/gui.c:70
msgid "Spell checking while typing is now disabled"
msgstr "Correcção ortográfica enquanto tecla encontra-se desactiva agora"
-#: ../spellcheck/src/gui.c:288
+#: ../spellcheck/src/gui.c:291
msgid ""
"Search term is too long to provide\n"
"spelling suggestions in the editor menu."
@@ -4406,39 +4515,39 @@
"Termo a pesquisar demasiado longo para apresentar\n"
"sugestões de escrita no menu do editor."
-#: ../spellcheck/src/gui.c:293
+#: ../spellcheck/src/gui.c:296
msgid "Perform Spell Check"
msgstr "Executar o Corrector Ortográfico"
-#: ../spellcheck/src/gui.c:325
+#: ../spellcheck/src/gui.c:328
msgid "More..."
msgstr "Mais..."
-#: ../spellcheck/src/gui.c:340
+#: ../spellcheck/src/gui.c:343
msgid "(No Suggestions)"
msgstr "(Sem Sugestões)"
-#: ../spellcheck/src/gui.c:349
+#: ../spellcheck/src/gui.c:352
#, c-format
msgid "Add \"%s\" to Dictionary"
msgstr "Adicionar \"%s\" ao Dicionário"
-#: ../spellcheck/src/gui.c:356
+#: ../spellcheck/src/gui.c:359
msgid "Ignore All"
msgstr "Ignorar Tudo"
-#: ../spellcheck/src/gui.c:496
+#: ../spellcheck/src/gui.c:499
#, c-format
msgid "Default (%s)"
msgstr "Por Defeito (%s)"
-#: ../spellcheck/src/gui.c:507
+#: ../spellcheck/src/gui.c:510
#, c-format
msgid "Toggle spell check while typing (current language: %s)"
msgstr ""
"Activa\\Desactiva a correcção ortográfica enquanto tecla (língua actual: %s)"
-#: ../spellcheck/src/gui.c:562
+#: ../spellcheck/src/gui.c:565
msgid "Spelling Suggestions"
msgstr "Sugestões de Ortografia"
@@ -4460,32 +4569,31 @@
#: ../tableconvert/src/tableconvert.c:34
msgid "Tableconvert"
-msgstr ""
+msgstr "Tableconvert (ConverteTabelas)"
#: ../tableconvert/src/tableconvert.c:35
msgid "A little plugin to convert lists into tables"
-msgstr ""
+msgstr "Um pequeno plugin que converte listas em tabelas"
#. OK. Something went not as expected.
#. * We did have a selection but cannot parse it into rows.
#. * Aborting
#: ../tableconvert/src/tableconvert.c:249
msgid "Something went wrong on parsing selection. Aborting"
-msgstr ""
+msgstr "Algo correu mal ao analisar o selecinado. Terminando"
#: ../tableconvert/src/tableconvert.c:280
-#, fuzzy
msgid "Convert selection to table"
-msgstr "Formata a selecção alinhando-a à esquerda"
+msgstr "Converter o selecionado numa tabela"
#. Build up menu entry
-#: ../tableconvert/src/tableconvert.c:295
+#: ../tableconvert/src/tableconvert.c:293
msgid "_Convert to table"
-msgstr ""
+msgstr "_Converter numa tabela"
-#: ../tableconvert/src/tableconvert.c:298
+#: ../tableconvert/src/tableconvert.c:296
msgid "Converts current marked list to a table."
-msgstr ""
+msgstr "Converte a lista atualmente selecionada, numa tabela."
#: ../treebrowser/src/treebrowser.c:117
msgid "TreeBrowser"
@@ -4579,9 +4687,9 @@
msgstr "Fechar: %s"
#: ../treebrowser/src/treebrowser.c:1246
-#, fuzzy, c-format
+#, c-format
msgid "Close Child Documents "
-msgstr "Fechar os Out_ros Documentos"
+msgstr "Fechar os Documentos Filhos"
#: ../treebrowser/src/treebrowser.c:1251
msgid "Copy full path to clipboard"
@@ -4780,7 +4888,7 @@
#: ../webhelper/src/gwh-settings.c:774
#, c-format
msgid "%s:"
-msgstr ""
+msgstr "%s:"
#: ../webhelper/src/gwh-browser.c:485
msgid "_Zoom"
@@ -4846,121 +4954,106 @@
#: ../webhelper/src/gwh-plugin.c:305
msgid "Browser auto reload"
-msgstr ""
+msgstr "Navegador auto carrega-se"
#: ../webhelper/src/gwh-plugin.c:306
-#, fuzzy
msgid "Whether the browser reloads itself upon document saving"
-msgstr "Reler documento ao guardar"
+msgstr "Se o navegador se de auto carregar novamente ao guardar um documento"
#: ../webhelper/src/gwh-plugin.c:311
msgid "Browser last URI"
-msgstr ""
+msgstr "Último URI do navegador"
#: ../webhelper/src/gwh-plugin.c:312
msgid "Last URI visited by the browser"
-msgstr ""
+msgstr "Último URI visitado pelo navegador"
#: ../webhelper/src/gwh-plugin.c:317
-#, fuzzy
msgid "Browser orientation"
-msgstr "Orientação do Papel:"
+msgstr "Orientação do navegador"
#: ../webhelper/src/gwh-plugin.c:318
-#, fuzzy
msgid "Orientation of the browser widget"
-msgstr "Etiqueta, usada como referência da Citação"
+msgstr "Orientação do navegador"
#: ../webhelper/src/gwh-plugin.c:324
msgid "Browser position"
-msgstr ""
+msgstr "Posição do navegador"
#: ../webhelper/src/gwh-plugin.c:325
msgid "Position of the browser widget in Geany's UI"
-msgstr ""
+msgstr "Posição do navegador na Interface do Geany"
#: ../webhelper/src/gwh-plugin.c:331
msgid "Browser separate window geometry"
-msgstr ""
+msgstr "Geometria da janela do navegador, quando separado"
#: ../webhelper/src/gwh-plugin.c:332
msgid "Last geometry of the separated browser's window"
-msgstr ""
+msgstr "Última geometria da janela do navegador quando separada"
#: ../webhelper/src/gwh-plugin.c:337
msgid "Inspector window geometry"
-msgstr ""
+msgstr "Geometria da janela do Inspetor"
#: ../webhelper/src/gwh-plugin.c:338
msgid "Last geometry of the inspector window"
-msgstr ""
+msgstr "Última geometria da janela do Inspetor"
#: ../webhelper/src/gwh-plugin.c:343
msgid "Secondary windows skip task bar"
-msgstr ""
+msgstr "Janelas secundárias não aparecem na barra de tarefas"
#: ../webhelper/src/gwh-plugin.c:344
msgid ""
"Whether to tell the window manager not to show the secondary windows in the "
"task bar"
msgstr ""
+"Indica ao gestor de janelas se deve ou não apresentar janelas secundárias na "
+"barra de tarefas"
#: ../webhelper/src/gwh-plugin.c:349
msgid "Secondary windows are transient"
-msgstr ""
+msgstr "Janelas secundárias são transitórias"
#: ../webhelper/src/gwh-plugin.c:350
msgid "Whether secondary windows are transient children of their parent"
-msgstr ""
+msgstr "Se as janelas secundárias são filhas transitórias de seus pais"
#: ../webhelper/src/gwh-plugin.c:355
msgid "Secondary windows type"
-msgstr ""
+msgstr "Tipo das janelas secundárias"
#: ../webhelper/src/gwh-plugin.c:356
msgid "The type of the secondary windows"
-msgstr ""
+msgstr "Qual o tipo das janelas secundárias"
#: ../webhelper/src/gwh-plugin.c:431
-#, fuzzy
msgid "Toggle Web Inspector"
msgstr "Comuta o inspector Web"
#: ../webhelper/src/gwh-plugin.c:436
msgid "Show/Hide Web View's Window"
-msgstr ""
+msgstr "Mostrar/Ocultar Janela de vista Web"
#. Browser
#: ../webhelper/src/gwh-plugin.c:502
-#, fuzzy
msgid "Browser"
-msgstr "Navegador em Árvore"
+msgstr "Navegador"
#. Windows
#: ../webhelper/src/gwh-plugin.c:514
msgid "Windows"
-msgstr ""
+msgstr "Janelas"
#: ../xmlsnippets/src/plugin.c:45
msgid "XML Snippets"
-msgstr ""
+msgstr "Excertos de código XML"
#: ../xmlsnippets/src/plugin.c:46
msgid "Autocompletes XML/HTML tags using snippets."
-msgstr ""
+msgstr "Auto completar etiquetas XML/HTML usando excertos de código."
-#, fuzzy
-#~ msgid "Error reading config file"
-#~ msgstr "Forçar o reler dos ficheiros de configuração"
-
-#, fuzzy
-#~ msgid "Couldn't create tempfile"
-#~ msgstr "Criar um novo ficheiro"
-
-#, fuzzy
-#~ msgid "GeanyPG"
-#~ msgstr "GeanyGDB"
-
#~ msgid "Lionel Fuentes"
#~ msgstr "Lionel Fuentes"
@@ -5095,18 +5188,12 @@
#~ msgid "Display a backtrace of the current call stack."
#~ msgstr "Mostrar um registo da actual chamada à pilha."
-#~ msgid "Add or remove breakpoints."
-#~ msgstr "Adiciona ou retira pontos de paragem."
-
#~ msgid "Add or remove watchpoints."
#~ msgstr "Adiciona ou retira pontos de observação."
#~ msgid "_Finish"
#~ msgstr "_Terminar"
-#~ msgid "Complete the currently executing function."
-#~ msgstr "Completar a função que executa de momento."
-
#~ msgid "_Return"
#~ msgstr "_Retornar"
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.