[GSOC 2013] Code completion in the Basic IDE
Noel Power
nopower at suse.com
Wed May 29 07:47:46 PDT 2013
Hi Gergő
On 29/05/13 15:16, Gergő Mocsi wrote:
> Hello Everyone,
> I'm very excited to do this task in GSOC 2013. My name is Gergő Mocsi
> and Iám a student ant Eötvös Loránd University in Budapest, Hungary.
> Here's what I've alredy figured out:
Congratulations on being accepted, we are delighted that you are going
to be working on this project, I am particularly excited and looking
forward to working with you on this project !!!!
> the problem in BASIC language is that it can handle only Object type,
> and other can be created with createUnoService(...) etc. First, I have
> to add support to the other type. Here is an example how I wan to do this:
>
> Dim filepicker As Object
> filepicker = createUnoService("com.sun.star.ui.dialogs.FilePicker")
>
> these two lines create a FilePicker that will show up. Later can be
> used like this:
>
> filepicker.setDisplayDirectory(".")
> filepicker.Title = title
> filepicker.execute()
> files = filepicker.getFiles()
>
> This code sets the display directory and title of the filepicker, and
> the execute() method shows it. After that, we get back the selected file.
> So, if we had a FilePicker type in BASIC, we could do the code
> completition (beacuse the IDE doesn't know the type, ONLY when
> executed the code).
> So, I'd like to implement these types to BASIC language and it would
> look like this:
> eg. Dim filepicker as com.sun.star.ui.dialogs.FilePicker
I think you are on the right track :-) However you are jumping forward a
number of steps :-)) ( and I like small manageable steps that my puny
brain can process )
Also I think we need to distinguish between defining an object as a
certain type and additionally defining an 'instance' of that type
so... something like
a) Dim filepicker as new com.sun.star.ui.dialogs.FilePicker ' to declare
a variable pointing to a new instance
b) Dim filepicker as com.sun.star.ui.dialogs.FilePicker ' for just
declaring a variable
but... "com.sun.star.ui.dialogs.FilePicker" is a service and not a type
( and currently there is no afaik way to get the primary interface
associated with a service from a service name )
But I like your idea and when the bones of the support is in place I
think we can think about some shortcuts and possibly getting some
information in the registry that would allow what you suggest to be possible
Personally though I think we need to start with b) it is sort of the
'base' usage, so.. something like
Dim filepicker as com.sun.star.ui.dialogs.XFilePicker3
and yes the above is quite a mouthful ( but.. for a further step we
could introduce some namespace magic ) and get
Dim filepicker as ui.dialogs.XFilePicker3
or even
Dim filepicker as XFilePicker3
(and eventually with some help from a tweaked registry )
Dim filepicker as FilePicker '( which basic would understand and Dim
filepicker as com.sun.star.ui.dialogs.XFilePicker3 )
But... lets talk about this maybe tomorrow, we should meet up in anycase
to just even say hello. I will try to write some very rough ideas of
where to start with this, we can then discuss that in some more detail
Once again, congratulations and welcome
Noel
ps. good choice of example
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/libreoffice/attachments/20130529/821fb8e7/attachment.html>
More information about the LibreOffice
mailing list