Ang: GPS Hook question

View: New views
1 Messages — Rating Filter:   Alert me  

Ang: GPS Hook question

by Per Sandberg :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Got a small sample that does that, hoever I dont know how to do
a "gnat pretty" on save in a safe way.
Have a look in the attachment.
/Per

>----Ursprungligt meddelande----
>Från: mspam@...
>Datum: 29-02-2008 14:24
>Till: <gps-users@...>
>Ärende: [gps-users]  GPS Hook question
>
>
>I've never created a hook for GPS.  I've read the docs but
I'm still not sure
>how to proceed.
>
>Here's what I want to do:
>I want the pretty printer to run, using whatever the project
defaults are,
>whenever I save an Ada file.  In other words, I always want
Ada files
>pretty-printed as part of the save operation.  I'm guessing I
need to add
>something to the file_saved Hook, but I need some help.
>
>Any Hook Masters want to, ehh, hook me up with a solution?
>Thanks!
>
>--
>View this message in context: http://www.nabble.com/GPS-Hook-
question-tp15744424p15744424.html
>Sent from the GNAT Programming Studio - User mailing list
archive at Nabble.com.
>
>_______________________________________________
>gps-users mailing list
>gps-users@...
>http://lists.adacore.com/mailman/listinfo/gps-users
>


"""
 This macro reformats a source file on save with the
 selected engine.
"""
import GPS
def reformat(hook,f):
    try:
        engine=GPS.Preference("format-on-save").get()
    except:
        GPS.Preference("format-on-save").set("GPS-Format")
        engine=GPS.Preference("format-on-save").get()
    if engine="None":
        pass  
    elif engine=="Gps-format":
        v=GPS.EditorBuffer.get().current_view()
        c=v.cursor()
        GPS.EditorBuffer.get(f).select()
        GPS.execute_action (action="Format Selection")
        v.goto(c)
    elif engine=="Gnatpp":
        # Think about:
        #  What if several files are edited.
        #  Dont think it is possible to do in a safe way.
        print "To be implemented"
    else:
        print "Unknown engine:" + engine

       
def initialize():
    GPS.parse_xml("""
   <preference name="format-on-save"
                    page="Editor"
                    tip ="Reformats the sourcefile before save"
                    label="Format on save"
                    default="1"
                    type="choices" >
          <choice>None</choice>
          <choice>GPS-Format</choice>  <!--  The default choice -->
<!--          <choice>gnatpp</choice> -->
        </preference>""")
    GPS.Hook ("before_file_saved").add(reformat)
initialize()

_______________________________________________
gps-users mailing list
gps-users@...
http://lists.adacore.com/mailman/listinfo/gps-users
LightInTheBox - Buy quality products at wholesale price