Revision: 2586 http://geany.svn.sourceforge.net/geany/?rev=2586&view=rev Author: ntrel Date: 2008-05-14 09:44:18 -0700 (Wed, 14 May 2008)
Log Message: ----------- Update adding a filetype section, make clearer.
Modified Paths: -------------- trunk/ChangeLog trunk/HACKING
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2008-05-14 16:37:09 UTC (rev 2585) +++ trunk/ChangeLog 2008-05-14 16:44:18 UTC (rev 2586) @@ -33,6 +33,8 @@ * src/document.c: Fix line breaking not getting reset for new documents sometimes. Merge all document default settings into init_doc_struct(). + * HACKING: + Update adding a filetype section, make clearer.
2008-05-13 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
Modified: trunk/HACKING =================================================================== --- trunk/HACKING 2008-05-14 16:37:09 UTC (rev 2585) +++ trunk/HACKING 2008-05-14 16:44:18 UTC (rev 2586) @@ -174,7 +174,8 @@ parser' below.
Add GEANY_FILETYPES_FOO to filetypes.h. -Initialize GEANY_FILETYPES_FOO in filetypes_init_types() of filetypes.c. +Initialize GEANY_FILETYPES_FOO in init_builtin_filetypes() of +filetypes.c. Rebuild Geany. From your geany/ directory, run: src/geany --generate-data-files @@ -186,28 +187,37 @@ --generate-data-files argument to work - this is always defined in the SVN version. Alternatively, edit the file by hand.
+filetypes.* configuration file +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ All languages need a data/filetypes.foo configuration file. See -data/filetypes.c for an example. For languages with a Scintilla lexer, -there should be a [styling] section, to correspond to the styles used -in styleset_foo(). +data/filetypes.c for an example.
Programming languages should have: [keywords] if the lexer supports it. [settings] mostly for comment settings. [build_settings] for commands to run.
+For languages with a Scintilla lexer, there should be a [styling] section, +to correspond to the styles used in styleset_foo() in highlighting.c - +see below. + +Syntax highlighting +^^^^^^^^^^^^^^^^^^^ For syntax highlighting, you will need to edit highlighting.c and add the following things: 1. Write styleset_foo_init() to setup default styles and load style -settings from the filetypes.foo configuration file. For details, see -styleset_c_init(). +settings from the filetypes.foo configuration file. You should probably +start by copying and adapting another filetype's initialization, such +as styleset_asm_init(). 2. Write styleset_foo() to apply styles when a new scintilla widget -is created. For details, see styleset_c(). +is created. Again you could copy and adapt a function like styleset_asm(). 3. Add this in highlighting_init_styles(): init_styleset_case(GEANY_FILETYPES_FOO, foo); 4. Add this in highlighting_set_styles(): styleset_case(GEANY_FILETYPES_FOO, foo);
+Other features +^^^^^^^^^^^^^^ Error message parsing is done in msgwin_parse_compiler_error_line() of msgwindow.c. See the ParseData typedef for more information. (In future this may be done with a regex). @@ -219,13 +229,13 @@ in editor.c. For now, this prevents calltips and autocompletion when typing in a comment (but it can still be forced by the user).
-If the Scintilla lexer supports user type keywords (e.g. SCLEX_CPP), -see editor_lexer_get_type_keyword_idx() in editor.c. +If the Scintilla lexer supports user type keyword highlighting (e.g. +SCLEX_CPP), update editor_lexer_get_type_keyword_idx() in editor.c.
Adding a TagManager parser -------------------------- -This assumes the Geany filetype already exists. +This assumes the filetype for Geany already exists.
First write or find a CTags compatible parser, foo.c. Note that there are some language patches for CTags at:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.