gtksourceview-2.0 with custom paths

2011-08-22 Thread Allin Cottrell
First off, sorry if this is the wrong place to ask. I see from 
http://projects.gnome.org/gtksourceview//development.html that the 
recommendation is to ask about gtksourceview on gnome-devtools, but 
that list appears to be pretty much moribund so I'm trying here.


I work on a cross-platform GTK app, and I'm trying to get 
gtksourceview-2.0 working in the context of packages for Windows and 
OS X, where I don't know the final installation path and so I need 
to specify the search paths for language-specs and style files at 
runtime.


Right now I'm emulating this situation on Linux, and while I seem to 
be close to success, no cigar yet. Any help would be appreciated. 
(BTW, my testing is with version 2.10.5, which I take to be "latest 
stable" in the 2.0 series, but should I be using 2.11.N?)


Step 1: Specify a non-standard location for the lang files. Before 
displaying any text I grab the default languages manager with


  gtk_source_language_manager_get_default()

and set a custom location using

  gtk_source_language_manager_set_search_path

Result: Success. I get syntax highlighting OK, even if I hide the 
standard language-specs directory.


Step 2: Specify a non-standard location for the style files. Again, 
before displaying anything I grab the default style scheme manager 
with


  gtk_source_style_scheme_manager_get_default()

and set a custom directory using

  gtk_source_style_scheme_manager_set_search_path()
  gtk_source_style_scheme_manager_force_rescan()

(I'm not sure the latter call is necessary, but I threw it in for 
good measure.)


Result: Failure: no syntax highlighting.

Though I don't need styles other than "classic", I've tried this 
with the custom directory containing the entire contents of the 
standard styles directory.


I guess I must be missing something. By inserting print statements I 
can see that after Step 2,


  gtk_source_style_scheme_manager_get_scheme_ids()

is giving an apparently valid list of ids, corresponding to the 
style xml files in the non-standard location (which in some 
experiments was a subset of the full list, but including "classic").


One more observation: In each case my setting of the "non-standard 
location" was an array of just two *gchars, the custom path followed 
by NULL. In the style-scheme-manager case (only), the result (syntax 
highlighting or none) was conditional on whether or not the standard 
styles directory was "visible" or hidden (renamed) at runtime.


--
Allin Cottrell
Department of Economics
Wake Forest University
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: gtksourceview-2.0 with custom paths

2011-08-24 Thread Paolo Borelli
Hi Allin,

gtksourceview by default uses the XDG base directory specification to
lookup .lang files and style schemes, so it should "just work" without
having to manually force the search path with
gtk_source_language_manager_set_search_path.

For instance gedit is ported to both windows and osx and the path of
lang files does not have any special treatment as far as I recall. The
important thing (at least for windows) is that your package follows the
right conventions in the name of directories _relatively_ to your
binary, for instance gedit's installer has:


  bin
gedit.exe
  share
gtksourceview-2.0
  language-specs
c.lang
...


Ciao
Paolo

Il giorno lun, 22/08/2011 alle 20.00 -0400, Allin Cottrell ha scritto:
> First off, sorry if this is the wrong place to ask. I see from 
> http://projects.gnome.org/gtksourceview//development.html that the 
> recommendation is to ask about gtksourceview on gnome-devtools, but 
> that list appears to be pretty much moribund so I'm trying here.
> 
> I work on a cross-platform GTK app, and I'm trying to get 
> gtksourceview-2.0 working in the context of packages for Windows and 
> OS X, where I don't know the final installation path and so I need 
> to specify the search paths for language-specs and style files at 
> runtime.
> 
> Right now I'm emulating this situation on Linux, and while I seem to 
> be close to success, no cigar yet. Any help would be appreciated. 
> (BTW, my testing is with version 2.10.5, which I take to be "latest 
> stable" in the 2.0 series, but should I be using 2.11.N?)
> 
> Step 1: Specify a non-standard location for the lang files. Before 
> displaying any text I grab the default languages manager with
> 
>gtk_source_language_manager_get_default()
> 
> and set a custom location using
> 
>gtk_source_language_manager_set_search_path
> 
> Result: Success. I get syntax highlighting OK, even if I hide the 
> standard language-specs directory.
> 
> Step 2: Specify a non-standard location for the style files. Again, 
> before displaying anything I grab the default style scheme manager 
> with
> 
>gtk_source_style_scheme_manager_get_default()
> 
> and set a custom directory using
> 
>gtk_source_style_scheme_manager_set_search_path()
>gtk_source_style_scheme_manager_force_rescan()
> 
> (I'm not sure the latter call is necessary, but I threw it in for 
> good measure.)
> 
> Result: Failure: no syntax highlighting.
> 
> Though I don't need styles other than "classic", I've tried this 
> with the custom directory containing the entire contents of the 
> standard styles directory.
> 
> I guess I must be missing something. By inserting print statements I 
> can see that after Step 2,
> 
>gtk_source_style_scheme_manager_get_scheme_ids()
> 
> is giving an apparently valid list of ids, corresponding to the 
> style xml files in the non-standard location (which in some 
> experiments was a subset of the full list, but including "classic").
> 
> One more observation: In each case my setting of the "non-standard 
> location" was an array of just two *gchars, the custom path followed 
> by NULL. In the style-scheme-manager case (only), the result (syntax 
> highlighting or none) was conditional on whether or not the standard 
> styles directory was "visible" or hidden (renamed) at runtime.
> 


___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: gtksourceview-2.0 with custom paths

2011-08-24 Thread Allin Cottrell

On Wed, 24 Aug 2011, Paolo Borelli wrote:


gtksourceview by default uses the XDG base directory specification to
lookup .lang files and style schemes, so it should "just work" without
having to manually force the search path with
gtk_source_language_manager_set_search_path.

For instance gedit is ported to both windows and osx and the path of
lang files does not have any special treatment as far as I recall. The
important thing (at least for windows) is that your package follows the
right conventions in the name of directories _relatively_ to your
binary, for instance gedit's installer has:


 bin
   gedit.exe
 share
   gtksourceview-2.0
 language-specs
   c.lang
   ...


OK, thanks, I'll try that. For the record, I found that the 
procedure I was trying (below) works if I use


 gtk_source_style_scheme_manager_set_search_path()

to set the style path _before_ the first call to

 gtk_source_buffer_new()

but not after.

Allin Cottrell



Il giorno lun, 22/08/2011 alle 20.00 -0400, Allin Cottrell ha scritto:

First off, sorry if this is the wrong place to ask. I see from
http://projects.gnome.org/gtksourceview//development.html that the
recommendation is to ask about gtksourceview on gnome-devtools, but
that list appears to be pretty much moribund so I'm trying here.

I work on a cross-platform GTK app, and I'm trying to get
gtksourceview-2.0 working in the context of packages for Windows and
OS X, where I don't know the final installation path and so I need
to specify the search paths for language-specs and style files at
runtime.

Right now I'm emulating this situation on Linux, and while I seem to
be close to success, no cigar yet. Any help would be appreciated.
(BTW, my testing is with version 2.10.5, which I take to be "latest
stable" in the 2.0 series, but should I be using 2.11.N?)

Step 1: Specify a non-standard location for the lang files. Before
displaying any text I grab the default languages manager with

   gtk_source_language_manager_get_default()

and set a custom location using

   gtk_source_language_manager_set_search_path

Result: Success. I get syntax highlighting OK, even if I hide the
standard language-specs directory.

Step 2: Specify a non-standard location for the style files. Again,
before displaying anything I grab the default style scheme manager
with

   gtk_source_style_scheme_manager_get_default()

and set a custom directory using

   gtk_source_style_scheme_manager_set_search_path()
   gtk_source_style_scheme_manager_force_rescan()

(I'm not sure the latter call is necessary, but I threw it in for
good measure.)

Result: Failure: no syntax highlighting.

Though I don't need styles other than "classic", I've tried this
with the custom directory containing the entire contents of the
standard styles directory.

I guess I must be missing something. By inserting print statements I
can see that after Step 2,

   gtk_source_style_scheme_manager_get_scheme_ids()

is giving an apparently valid list of ids, corresponding to the
style xml files in the non-standard location (which in some
experiments was a subset of the full list, but including "classic").

One more observation: In each case my setting of the "non-standard
location" was an array of just two *gchars, the custom path followed
by NULL. In the style-scheme-manager case (only), the result (syntax
highlighting or none) was conditional on whether or not the standard
styles directory was "visible" or hidden (renamed) at runtime.







--
Allin Cottrell
Department of Economics
Wake Forest University
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list