Re: [gedit-list] tools plugin -- request for comments



Hi!

Sorry for this late reply.. I have discussed this with Paolo on IRC,
please look at the attached log.

In the attachment is also an updated version of tools.glade, comments
are welcome!  I think its finished, well.. maybe the keyboard shortcuts
need some work. :)


Regards,
Rui Lopes


On Ter, 2003-09-23 at 17:12, Paolo Maggi wrote:
> > I want to create a "Tools" plugin for gedit, but first I want to discuss
> > this with you, read the following "spec" and tell me what you think.
> > 
> > 
> > 
> > <<<<< start
> > 
> > Tools Plugin
> > ------------
> > 
> > - Provide a mechanism to call external programs from a
> >   menuitem/shortcut-key.
> > 
> > - Capture and parse the output of an external program to show a
> >   error/warning list.
> > 
> > - We can also have filter tools, this ones are feed with some document
> >   text and return/replace the selection or create a new document.
> > 
> > - Group several tools in a group, so we can have a fast access to the
> >   tools needed for a specific task, say, a simple tool chain for coding
> >   C programs.
> 
> How will the group selected? Using the document MIME-type?
> 
> >   These tools will be automatically associated with Ctrl+<N> shortcuts.
> >   OTOH if a tool is not associated with a specific group it will be
> >   always available.
> > 
> > 
> > 
> > Each tool
> > ---------
> > 
> > - The tool name and a icon that appears on menus.
> > 
> > - Command line (to be passed to user shell)
> >   with expansions format: $() and escape $$.
> >     - filename
> >     - basename
> >     - uri
> >     - line
> >     - column
> >     - selection (selected text)
> >     - totallines (?)
> > 
> I'm not so sure about totallines.
> We also need a way to set the working directory and to pass it and the
> home dir as command line argument. 
> We also need a way to display an input box for the user to enter input
> that will be added to the parameter string.
> 
> > 
> > - stdin to pass to command line
> >     - current selection
> >     - all document
> >     - a string
> >     - none
> > 
> >     pass as a locale or utf8 encoded text.
> > 
> > 
> > - Capture output to:
> >     - replace current selection
> >     - replace all document
> >     - a new document
> >     - insert at cursor position
> >     - insert in a new line above/bellow current line
> >     - append to document
> >     - output window
> >     - output window with error/warning parsing, this needs a list with
> >       output filters to apply
> >       - each output filter is applied in order, this iteration ends when
> >         one of them matches a filename:linum pair.
> > 
> > 
> hmm... I think that for the moment all the output could go to the output
> window. The user can copy text from the output window and paste it in
> the document if needed.
> 
> > - A flag that says if we should:  save all files, save the current
> >   file, or not save at all.
> > 
> > 
> > - Working directory.
> > 
> > 
> > - Environment for the command?  (or the user can use the env command)
> > 
> > 
> > 
> > NOTE: While the tool is running no other tool can run, neither the user
> >       can modify the document.  This only applies to a tool that uses
> >       output window or modifies the document.
> > 
> > 
> > 
> > 
> > Output Filters
> > --------------
> >    - operate at line basis.
> >    - each filter has a type: warning or error.
> Are warning and error the only two types we need?
> 
> >    - each return:
> >        - filename
> >        - line
> >        - column (optional)
> >      NOTE: a regex lib that can name groups is needed.  pcre can
> >            do this with, (?P<filename>.+) (?P<linenum>[0-9]+).
> >            (Python syntax).
> >            Or, we can simulate this using gnuregex by counting `()'.
> >    - a unique name.
> >    - a description. (humm, really?)
> > 
> > 
> > 
> > 
> > Changes to gedit
> > ----------------
> > 
> > I need a way of connecting mouse double-click and space/enter key
> > signals;  needed to open the file:line with the error/warning.
> > How about a "action" signal?
> > 
> > 
> > I also need a output-cleared and destroyed signal in output window;
> > needed for releasing resources allocated by the tool.
> > 
> > 
> > <<<<< end
> > 
> > 
> > 
> > You will find a GUI mockup of all this in the attachment, the most
> > "crude" one is the tool-editor-advanced dialog.
> 
> Your mockups look good. My only doubt is: do we really need such a
> complicate GUI, i.e. all these dialogs?
> Please, change your dialog to follow the HIG more closely. For example,
> you have to set the right border size, the HELP button (do we really
> need it in all the dialogs?) should be on the left side of the action
> area, there must be space among buttons and so on.
> 
> Great work!
> 
> Thanks,
> Paolo
Set 23 17:13:15 <debugger>	hey paolo!
Set 23 17:13:30 <debugger>	paolo: I'm checking your reply now
Set 23 17:14:11 <paolo>	hi
Set 23 17:14:54 ---	Taeko gives voice to debugger
Set 23 17:18:56 <debugger>	paolo: about that Help button.  I was using GtkWindow and not GtkDialog, in GtkDialog the Help button is placed on the left.  (its odd, because in GtkWindow the GtkHButtonBox widget has a different layout..)
Set 23 17:19:40 <paolo>	you need to use a GtkDialog them
Set 23 17:20:11 <irotas>	paolo: btw, remember the problem i was having with the spell checker plugin causing gedit to crash on close? its gone now, since upgrading to GNOME/gedit 2.4
Set 23 17:20:23 <paolo>	irotas: nice
Set 23 17:20:24 <irotas>	must have been a compatibility issue with GNOME 2.2
Set 23 17:20:55 <paolo>	yep
Set 23 17:21:10 <irotas>	(as we all expected it to be)
Set 23 17:21:21 <paolo>	irotas: have you seen the Ruis (aka debugger) proposal about the tools plugin?
Set 23 17:21:26 <paolo>	irotas: what do you think?
Set 23 17:22:04 <irotas>	i skimmed it yesterday, but i haven't reviewed it thoroughly
Set 23 17:22:07 <paolo>	ops... Rui not Ruis (sorry)
Set 23 17:22:42 <irotas>	i do agree about your HIG comment
Set 23 17:23:07 <irotas>	thats really my only concern
Set 23 17:23:21 <paolo>	ok
Set 23 17:23:42 <debugger>	yes, I will setup those HIG things, like border widths, spaces and all.
Set 23 17:23:48 <paolo>	!seen wulf
Set 23 17:23:49 <Taeko>	wulf (~wulf host-66-81-176-58 rev o1 com) was last seen quitting from #gedit 3 days, 8 hours, 16 minutes ago stating (Ping timeout: 600 seconds).
Set 23 17:24:00 <debugger>	but about the "simple" comment, I really think its simple :/
Set 23 17:24:24 <debugger>	at start you get a dialog with a list of configured tools.
Set 23 17:24:35 <paolo>	well, there are a lots of dialogs
Set 23 17:24:51 <debugger>	then you click edit, and get a simple dialog alike the launcher dialog.
Set 23 17:25:14 <debugger>	after that, you only have the advanced dialog and the regexs one. :/
Set 23 17:25:31 <debugger>	I don't see other "simple" way to present it ://
Set 23 17:25:41 <paolo>	ok. 
Set 23 17:26:06 <paolo>	I think we should also set some env variable, so that tools can use them
Set 23 17:26:26 <paolo>	so you can write scripts like the nautilus scripts
Set 23 17:26:44 <paolo>	and use them as tools
Set 23 17:27:56 <debugger>	I think the only dialog that needs to have the things "organized" is the advanced one.
Set 23 17:28:25 <debugger>	the other seem reasonable.  offcourse I'm open to suggestions =))
Set 23 17:28:30 *	paolo is opening the glade file
Set 23 17:28:33 <debugger>	s/other/others
Set 23 17:29:40 <paolo>	ok, let us start with the tool manager
Set 23 17:29:58 <paolo>	I don't think you need to use bold for tools
Set 23 17:30:17 <paolo>	it is not a category, dialog must not have a single category
Set 23 17:30:28 <debugger>	ah ok =)
Set 23 17:30:33 <paolo>	you can use a normal dialog using _T as accelerator
Set 23 17:30:40 <debugger>	you only place bold in categories?
Set 23 17:30:42 <paolo>	s/dialog/label
Set 23 17:30:49 <paolo>	debugger: yep
Set 23 17:30:59 <paolo>	and you can remove the indentation
Set 23 17:31:01 <debugger>	ok.  changed :)
Set 23 17:31:10 *	irotas will bbl, need to go get some boxes to start packing .. yay
Set 23 17:31:23 <debugger>	yeah, I only placed it there because the bold thing. hehe
Set 23 17:31:56 <paolo>	Well, it is needed to improve key navigation 
Set 23 17:32:28 <paolo>	You need to add some space among the buttons and change their order
Set 23 17:32:31 <paolo>	Add..
Set 23 17:32:38 <paolo>	Add as Copy...
Set 23 17:32:41 <paolo>	Remove
Set 23 17:32:45 <paolo>	<more space>
Set 23 17:32:48 <paolo>	Edit...
Set 23 17:32:51 <paolo>	<more space>
Set 23 17:32:53 <paolo>	Up
Set 23 17:32:56 <paolo>	Down
Set 23 17:32:56 <--	Rupert has kicked paolo from #gedit (flood)
Set 23 17:33:03 <debugger>	AHAHAH
Set 23 17:33:07 -->	paolo (~paolo host26-104 pool80104 interbusiness it) has joined #gedit
Set 23 17:33:07 ---	Taeko gives channel operator status to paolo
Set 23 17:33:07 ---	Rupert gives channel operator status to paolo
Set 23 17:33:11 <debugger>	heheh
Set 23 17:33:20 <paolo>	stupid Rupert
Set 23 17:33:41 <paolo>	which was my last line?
Set 23 17:33:51 <debugger>	well, my intention was that.  but I don't known how to add it to a GtkVButtonBox
Set 23 17:34:03 <debugger>	<paolo> Edit...
Set 23 17:34:03 <debugger>	<paolo> <more space>
Set 23 17:34:03 <debugger>	<paolo> Up
Set 23 17:34:03 <debugger>	<paolo> Down
Set 23 17:34:03 <debugger>	<-- Rupert has kicked paolo from #gedit (flood)
Set 23 17:34:17 <paolo>	ok
Set 23 17:34:28 <paolo>	to add space use and empty label
Set 23 17:34:44 <debugger>	but that widget can only have BtkButtons
Set 23 17:35:21 <paolo>	hmmm... you can also use a GtkVBox with 3 GtkVButtonBox
Set 23 17:35:35 <debugger>	ah ok. that will do it! hheheh
Set 23 17:36:12 <debugger>	there should be a "space" thing on  GtkVButtonBox hehe
Set 23 17:36:41 <paolo>	Edit, Remove, Up and Down must be sensitive only if a tool is selected
Set 23 17:37:25 <paolo>	Up and Down are tricky to implement, you should find a possible implementation in gedit 2.2 (in the preferences dialog code)
Set 23 17:37:42 <debugger>	paolo: don't worry about implementation =)
Set 23 17:38:10 <debugger>	and yes, Edit, Remove, Up and Down are only be sensitive in the right time.
Set 23 17:38:13 <paolo>	ok... let me comment on the Tool Editor
Set 23 17:38:24 <debugger>	I can't do that in glade.
Set 23 17:38:41 <paolo>	what?
Set 23 17:39:04 <debugger>	tell the buttons the be sensitive or not when I select something in the treeview. hehe
Set 23 17:39:21 <debugger>	that was to be done at runtime.  like you known hehe
Set 23 17:39:29 <paolo>	ah, yep
Set 23 17:39:37 <paolo>	about the tool editor:
Set 23 17:39:59 <paolo>	how can I add a new Group and how can I associate it to a MIME-type to automatically select it?
Set 23 17:40:51 <paolo>	Icon should go in the advanced dialog
Set 23 17:41:02 <paolo>	or better you don't need an advanced dialog
Set 23 17:41:12 <debugger>	you add Groups simple by changing the name of the group.
Set 23 17:41:33 <debugger>	and the combo box will show existing groups.
Set 23 17:41:36 <paolo>	you can use a widget to shod or not the advanced options
Set 23 17:41:56 <debugger>	something like a collapsible thing?
Set 23 17:41:56 <paolo>	s/shod or not/show or hide
Set 23 17:42:03 <paolo>	yep
Set 23 17:42:09 <debugger>	say, I click that button and the dialog box expands?
Set 23 17:42:35 <debugger>	ok.  I can do that.  but maybe the dialog will be to tall what I do that.
Set 23 17:42:43 <debugger>	s/what/when
Set 23 17:43:05 <paolo>	well, we could try
Set 23 17:43:13 <debugger>	ok. I will.
Set 23 17:43:21 <paolo>	there should be a widget in gtk+ 2.4 to do this operation
Set 23 17:44:03 <debugger>	but first we need to decide what goes in the advanced "part"
Set 23 17:44:09 <paolo>	yep
Set 23 17:44:26 <debugger>	I like the way to select the stdin/stdout.
Set 23 17:44:37 <debugger>	using some menus.
Set 23 17:44:43 <debugger>	well, like it is now. =)
Set 23 17:45:05 <paolo>	well, you should add a way to have:
Set 23 17:45:10 <paolo>	Standard input: None
Set 23 17:45:14 <paolo>	as default
Set 23 17:45:22 <debugger>	the None is an empty string.
Set 23 17:45:34 <debugger>	I did that on purpose.
Set 23 17:45:36 <paolo>	hmmm... it is not so intuitive
Set 23 17:46:12 <debugger>	humm. ok.  that way I didn't need to add another option to the menu,  but I will add the none.
Set 23 17:46:14 <paolo>	also you may want to not capture the output
Set 23 17:46:55 <debugger>	that will be sensitive depending on "run detached" check box.
Set 23 17:46:55 <paolo>	and what about the Standard Error?
Set 23 17:47:15 <paolo>	Run detached? What do you mean with it?
Set 23 17:47:20 <debugger>	so no need to add a "not" capture output.
Set 23 17:47:50 <debugger>	I want to say, when you use this tool, simple run it like you do in a launcher.
Set 23 17:48:05 <paolo>	Probably "Capture the output" is better
Set 23 17:48:32 <debugger>	humm, run detached also mean, dont "capture" input.
Set 23 17:48:45 <debugger>	(like in launchers)
Set 23 17:48:46 <paolo>	It is not good to have Run detached, etc in the same line, for i18n reasons
Set 23 17:48:53 <paolo>	ok
Set 23 17:49:14 <debugger>	you agree on that "run detached" ?
Set 23 17:49:17 <paolo>	what about if you want to capture the input but not the output?
Set 23 17:49:57 <debugger>	hummm, does that make sense?
Set 23 17:50:09 <paolo>	why not?
Set 23 17:50:22 <debugger>	never had to do that =)
Set 23 17:50:46 <debugger>	so, I capture the input, and where the output goes?
Set 23 17:50:55 <debugger>	/dev/null ?
Set 23 17:50:57 <paolo>	you may want to send a mail with the selected text
Set 23 17:50:59 <paolo>	yep
Set 23 17:51:43 <debugger>	hummm, the email program does not output any output?
Set 23 17:52:06 <debugger>	say, on errors?  or it just changes the returned value?
Set 23 17:52:36 <paolo>	don't know... it is only the first example in my mind
Set 23 17:53:14 <paolo>	you may want to append the selected text to a file
Set 23 17:53:23 <debugger>	ok.  what goes into the stdoutput menu then?  "/dev/null" ?
Set 23 17:53:31 <debugger>	"Ignore" ?
Set 23 17:53:41 <paolo>	yep, Ignore is good
Set 23 17:54:38 <paolo>	please, add the accelerators where they are missing
Set 23 17:54:55 <debugger>	yes yes I will =)
Set 23 17:55:00 <debugger>	its a mockup =)
Set 23 17:55:04 <debugger>	hehe
Set 23 17:55:04 <paolo>	IMHO, Icon should be in the advanced part too
Set 23 17:55:12 <debugger>	why?
Set 23 17:55:26 <paolo>	normally you will not add an Icon to the tool
Set 23 17:55:52 <debugger>	hummm, ok.
Set 23 17:56:18 <debugger>	and about stdin?
Set 23 17:56:28 *	debugger scrolls back
Set 23 17:56:37 <paolo>	it is good
Set 23 17:56:51 <paolo>	probably you should use Current Selection and Current Document
Set 23 17:57:24 <paolo>	and as I already said: 
Set 23 17:57:32 <paolo>	It is not good to have Run detached, etc in the same line, for i18n reasons
Set 23 17:58:03 <debugger>	ok. I will use a line for each of the checkboxes.
Set 23 17:58:17 <paolo>	I think the whole dialog (basic + advanced) should be modal
Set 23 17:58:31 <paolo>	so you need three buttons: Help   Cancel OK
Set 23 17:58:48 <debugger>	the stdin as "none" means, run tool with stdin closed, right?
Set 23 17:58:55 <paolo>	yep
Set 23 17:59:11 <debugger>	humm, no "Revert" ?
Set 23 17:59:24 <paolo>	no
Set 23 17:59:58 <debugger>	when you decide to use "Revert" and "Close" ?
Set 23 18:00:03 <debugger>	s/and/or
Set 23 18:00:19 <paolo>	About working dir and command you should use a "standard" gnome file entry or better the gtk+ equivalent if any
Set 23 18:00:31 <paolo>	when the dialog are not modal
Set 23 18:00:38 <paolo>	s/are/is
Set 23 18:00:57 <debugger>	so, when modal I use cancel?
Set 23 18:01:04 <paolo>	yep
Set 23 18:01:28 <debugger>	hummm, so every "Revert" I have should be "Cancel" hehe
Set 23 18:01:34 <paolo>	other questions or doubts on the tool editor?
Set 23 18:01:36 <paolo>	probably
Set 23 18:02:26 <debugger>	I don't think using  "standard" gnome dialogs is good for working dir or command.
Set 23 18:02:37 <paolo>	why?
Set 23 18:02:48 <debugger>	because in this case I only want to change the first "parameter" of the, say, command line.
Set 23 18:03:12 <debugger>	suppose I have already their, /bin/sh $(username)
Set 23 18:03:23 <debugger>	I only want to change the "/bin/sh" part.
Set 23 18:03:53 <paolo>	well, I think we could start with a the standard gnome widget, then we could improve it
Set 23 18:04:15 <paolo>	this is only a detail we could improve later
Set 23 18:04:25 <debugger>	improve what?  the gnome widget?
Set 23 18:05:03 <paolo>	no, we could use the gnome widget now and then eventually implement the behaviour you want to implement
Set 23 18:05:10 <paolo>	in a second iteration
Set 23 18:05:21 <debugger>	ah, ok. =)
Set 23 18:05:36 <paolo>	can we pass to another dialog?
Set 23 18:06:03 <debugger>	humm, what will be the order of the advanced part?
Set 23 18:06:06 <debugger>	like it is?
Set 23 18:06:11 <paolo>	yep
Set 23 18:06:55 <debugger>	I don't known if you noticed, but when you change the, say, stdout, the things in the right of it change too.
Set 23 18:06:56 <paolo>	oh, for the Save menu... probably it is better to use "No files" and set it as default
Set 23 18:07:06 <paolo>	yep
Set 23 18:08:26 <debugger>	paolo: its All files because I don't known how to change the default menuitem.  (besides moving it to the first entry of menu)
Set 23 18:08:49 <paolo>	ok, you can change it in the code.
Set 23 18:09:01 <paolo>	for the Output Filters the same comment as the Tools Dialogs applies
Set 23 18:09:25 <debugger>	yep, my comment still applies to those =)
Set 23 18:09:44 <paolo>	which comment?
Set 23 18:10:17 <debugger>	the one saying I don't known how to use glade do select another default menuitem.
Set 23 18:10:32 <debugger>	ok.  another dialog =)
Set 23 18:11:00 <paolo>	ok
Set 23 18:11:45 <paolo>	For the Edit Filter dialog... 
Set 23 18:11:53 <paolo>	what do you want to put in Test?
Set 23 18:12:14 <paolo>	Please, don't use frames they are HIG compliant
Set 23 18:12:34 <debugger>	the current value of the macro.
Set 23 18:12:49 <debugger>	paolo: frames?  where I used that?
Set 23 18:12:56 <paolo>	in Test
Set 23 18:13:20 <paolo>	Put Type on the new line
Set 23 18:13:28 <paolo>	s/the new/a new
Set 23 18:14:59 <debugger>	humm, there are HIG compliant?  or the aren't?
Set 23 18:15:05 <debugger>	s/the/they
Set 23 18:15:12 <paolo>	aren't
Set 23 18:15:16 <paolo>	sorry
Set 23 18:15:38 <debugger>	yes, that was not finished :/
Set 23 18:15:59 <debugger>	I just want to put their a Text Entry widget.
Set 23 18:16:09 <paolo>	ok.
Set 23 18:16:18 <paolo>	About the macros dialog... what is the preview list
Set 23 18:16:31 <debugger>	but what it to be separated from the top dialog :/
Set 23 18:17:07 <debugger>	may I put Test in bold?  and the test textentry below it?
Set 23 18:17:32 <paolo>	yep, read the HIG, it explains how to implement it
Set 23 18:18:01 <debugger>	HIG is so boring! hehehe
Set 23 18:18:41 <debugger>	what other types of errors you want to detected?
Set 23 18:18:47 <debugger>	notices?
Set 23 18:19:03 <debugger>	oh .. w8..
Set 23 18:19:09 <debugger>	about the stderr thing
Set 23 18:19:32 <debugger>	I thing I should drop the "std" from stdinput and stdoutput.
Set 23 18:19:46 <debugger>	and label it only has, "Input", "Output"
Set 23 18:20:01 <paolo>	ok
Set 23 18:20:10 <debugger>	we don't have a StdError thing, and we really need it?
Set 23 18:20:22 <debugger>	I mean, we only have Output window.
Set 23 18:20:50 <debugger>	so, Output is really, stdout/err.
Set 23 18:20:57 <paolo>	yep
Set 23 18:21:39 <debugger>	OTOH, labelling it "Input"  seems to miss some context. hehe
Set 23 18:22:30 <paolo>	as I said in my mail we also need a way to prompt for parameters
Set 23 18:24:00 <debugger>	<debugger> what other types of errors you want to detected?
Set 23 18:24:11 <debugger>	paolo: w8, lemme first discuss this one :)
Set 23 18:24:50 <paolo>	well, we can also have normal output
Set 23 18:25:01 <paolo>	not only errors and warnings
Set 23 18:25:14 <debugger>	humm, normal output, passes normally through the filter.
Set 23 18:25:24 <debugger>	and goes directly to output window.
Set 23 18:25:50 <paolo>	hmm... ok
Set 23 18:26:12 <debugger>	I mean, the filters are only to retrieve a list of errors/warning.
Set 23 18:26:24 <paolo>	ok
Set 23 18:26:26 <debugger>	they do not modify the text.
Set 23 18:26:31 <debugger>	ok =)
Set 23 18:27:10 <debugger>	You think we need another type of filter?  say, notice?  (this can be a warning)
Set 23 18:27:42 <debugger>	(well, we can easily add filter types on future hehe)
Set 23 18:27:50 <paolo>	yep
Set 23 18:28:14 <debugger>	yep?  should I also add Notice?
Set 23 18:28:14 <paolo>	for the moment 2 types are enough
Set 23 18:28:19 <debugger>	ah ok.
Set 23 18:28:40 <debugger>	now, argument prompting.-
Set 23 18:28:56 <paolo>	sorry but I have a crying baby in my hands so I'm a bit slow
Set 23 18:29:23 <debugger>	hehe no worries =)
Set 23 18:29:30 <debugger>	a simple, insert program arguments dialog will do the trick?
Set 23 18:29:45 -->	clarkbw (~clarkbw bryan sclab clarkson edu) has joined #gedit
Set 23 18:30:01 <debugger>	(with a combo box that shows the lasted arguments inserted to that tool)
Set 23 18:30:02 <paolo>	yep, like in JBuilder
Set 23 18:30:08 <paolo>	right
Set 23 18:30:30 <debugger>	humm, I don't have JBuilder here to check that out.
Set 23 18:30:51 <paolo>	we need to add a prompt for arguments option in the advanced dlg
Set 23 18:31:56 <debugger>	yeah.
Set 23 18:32:13 <debugger>	so I think that we iterate all dialogs, no?
Set 23 18:32:32 <paolo>	we miss the macro one
Set 23 18:33:35 <debugger>	oh .. w8
Set 23 18:33:40 <paolo>	I don't see the point of having preview
Set 23 18:34:38 <debugger>	ohh, previously I was talking about this macro dialog!  and not the other with a frame :/
Set 23 18:35:03 <paolo>	Close and Insert must be swapped
Set 23 18:35:14 <debugger>	in this one, when you select a macro, say $(username) it shows the current value of it in preview.
Set 23 18:35:43 <paolo>	then preview could be a simple label
Set 23 18:35:56 <debugger>	yes =)
Set 23 18:36:22 <debugger>	show I keep those bold things?  (ok RTFHIG=)
Set 23 18:36:22 <paolo>	Macros list should contain a human readable list
Set 23 18:36:54 <debugger>	I was thinking a pair, name,description
Set 23 18:37:06 <debugger>	and the preview in the bottom.
Set 23 18:37:15 <debugger>	ok?
Set 23 18:38:01 <paolo>	hmm... I'm still not sure about preview
Set 23 18:38:14 <paolo>	is it really needed?
Set 23 18:39:18 <debugger>	humm maybe not, we don't have strange contents in our macros.
Set 23 18:39:43 <debugger>	I will drop that in this.  if we need it, it can be easily added. hehe
Set 23 18:40:01 <paolo>	ok
Set 23 18:40:09 <debugger>	now the insert button on it.
Set 23 18:40:26 <paolo>	it must be on the right
Set 23 18:40:35 <debugger>	I was thinking of not dismissing the dialog when you clicked Insert button, or this is not a good ideia?
Set 23 18:40:55 <debugger>	(thats why I placed it on left hehe)
Set 23 18:41:10 <paolo>	hmm... I think you can use a non modal dialog here
Set 23 18:41:31 <paolo>	and have: Help   Close Insert
Set 23 18:41:59 <debugger>	ok.
Set 23 18:42:22 <debugger>	and that help button, should I drop it?
Set 23 18:43:23 <paolo>	yep, please
Set 23 18:43:44 <paolo>	Other questions?
Set 23 18:44:02 <debugger>	yes, the Edit Filter dialog.
Set 23 18:44:11 <paolo>	ok
Set 23 18:44:47 <paolo>	put type in a new line
Set 23 18:44:58 <paolo>	use 
Set 23 18:45:07 <paolo>	cancel ok
Set 23 18:45:16 <paolo>	and help
Set 23 18:45:31 <debugger>	I need to have an area where the user inserts some text, and some labels that show Filename, Linenumber and column.
Set 23 18:45:44 <debugger>	that way I can test the regex
Set 23 18:45:51 <paolo>	ok
Set 23 18:46:12 <debugger>	but I'm not seeing a "nice" way of putting that in the dialog :/
Set 23 18:47:08 <paolo>	hmmm... me neither
Set 23 18:49:38 <debugger>	maybe I can refrain for putting that in the dialog?  at least for now..
Set 23 18:50:56 <paolo>	yep, both textpad and IDEA do not have it
Set 23 18:52:01 <debugger>	but I wanted to have it their hehehe
Set 23 18:52:17 <debugger>	well, nevermind.  later I will try to do it. hehe
Set 23 18:52:34 <paolo>	ok
Set 23 18:52:46 <paolo>	have we finished?
Set 23 18:52:54 <debugger>	now, I like Type in the right of Name
Set 23 18:53:13 <debugger>	in a new line it kidda stays "alone"
Set 23 18:53:21 <paolo>	ok, not a big problem
Set 23 18:53:32 <paolo>	leave it there
Set 23 18:53:57 <paolo>	my little lady is sleeping now
Set 23 18:54:06 <debugger>	this also needs to be a Cancel Close dialog, right?
Set 23 18:54:21 <paolo>	yep
Set 23 18:55:31 <debugger>	so, are there really to much dialogs?
Set 23 18:56:24 <paolo>	well, merging the two tools dialog it is ok
Set 23 18:56:37 <debugger>	the advanced?
Set 23 18:56:42 <paolo>	yep
Set 23 18:56:48 <debugger>	ah ok. :)
Set 23 18:56:58 <debugger>	I think I don't have any more questions heheh
Set 23 18:57:13 <paolo>	I will send the IRC log on the ML, is it ok for you?
Set 23 18:57:14 <debugger>	and you?  :)
Set 23 18:57:28 <paolo>	no questions.
Set 23 18:57:36 <debugger>	how, its full of errors =)
Set 23 18:57:43 <debugger>	s/how/oh
Set 23 18:58:08 <debugger>	can I edit it?   heheh
Set 23 18:58:12 <paolo>	We should only define the set of macros and a set of standard filters
Set 23 18:58:19 <paolo>	sure
Set 23 18:59:44 <debugger>	humm, about that "standard filters", I was thinking of not having a filter repository.  I mean, every tool gets a set of filters that is created specific for her.
Set 23 19:00:27 <paolo>	ok, then we will need to create a set of default tools
Set 23 19:00:36 <paolo>	with their filters
Set 23 19:00:59 <paolo>	like Java Compiler, etc
Set 23 19:01:19 <debugger>	ok.
Set 23 19:01:19 <paolo>	or better Compile with Java, Compile with LaTeX, etc
Set 23 19:01:31 <debugger>	ah! another thing!
Set 23 19:01:48 <debugger>	> - Group several tools in a group, so we can have a fast access to the
Set 23 19:01:48 <debugger>	>   tools needed for a specific task, say, a simple tool chain for coding
Set 23 19:01:48 <debugger>	>   C programs.
Set 23 19:01:48 <debugger>	
Set 23 19:01:48 <debugger>	How will the group selected? Using the document MIME-type?
Set 23 19:02:16 <paolo>	oh, right! Any idea?
Set 23 19:02:38 <debugger>	I was thinking of having tool groups that can be accessed with Ctrl+Alt+N
Set 23 19:03:02 <debugger>	and the tools inside that groups, accessed with Ctrl+N
Set 23 19:03:28 <paolo>	hmmm... I think that automatically select groups would be cool!
Set 23 19:04:12 <paolo>	For example if you are editing a Java source the Java group is automatically selected
Set 23 19:04:14 <debugger>	this way I can, say, have a group with tools for Java and other for C#, and select each one with Ctrl+Alt+1 and the other with Ctrl+Alt+2,  then the compiler with, Ctrl+1
Set 23 19:04:55 <debugger>	hummmm, I wasn't thinking in that "automatic" way hehe
Set 23 19:05:38 <debugger>	but that can be "problematic", if say, we have two java groups, one using jdk 1.3 and 1.4.
Set 23 19:06:02 <debugger>	but we can use your way,  I never thought about that one. heheh
Set 23 19:06:11 <paolo>	hmmm... right
Set 23 19:06:19 <debugger>	I now understand what you mean with that MIME thing. hehe
Set 23 19:06:24 <paolo>	go with your idea for the moment
Set 23 19:06:47 <paolo>	then we will see in a second moment
Set 23 19:07:01 <debugger>	and note, that we can implement the first version of this without this group thing.
Set 23 19:07:16 <debugger>	I mean, without the automatic assignment of shortcut keys.
Set 23 19:07:34 <paolo>	yep
Set 23 19:08:05 <paolo>	well, you could use the metadata stuff of gedit to implement semi automatic selection of groups
Set 23 19:08:10 <debugger>	I my way, tools from different groups have the same shortcut key, the only think that disthings them is the current tool group.
Set 23 19:08:27 <debugger>	s/think/thing
Set 23 19:08:58 <paolo>	i.e. if you open a file for which you already selected a group you can reselect the same group for it
Set 23 19:09:10 <paolo>	reading in the metadata file
Set 23 19:09:29 <paolo>	like I do for the Highlight mode
Set 23 19:09:44 <debugger>	humm, what is a metadata file in gedit world?
Set 23 19:10:43 <debugger>	like, the file is mimetype xpto, you select the hilight mode for xpto files?
Set 23 19:11:10 <paolo>	you can associate information to open files
Set 23 19:11:22 <paolo>	and they are stored in a metadata files and eventually reused
Set 23 19:11:41 <debugger>	hummm, what metadata files are those?
Set 23 19:12:00 <debugger>	where are they stored?
Set 23 19:13:16 <paolo>	in ~/.gnome2/gedit-metadata.xml
Set 23 19:15:00 <paolo>	but it will use the gnome-vfs metadata stuff when it will be implemented
Set 23 19:15:45 <debugger>	funny, I never realized that gedit restored the cursor when we reopen it. eheh
Set 23 19:15:59 <debugger>	it, the file.
Set 23 19:16:40 <debugger>	humm, it only works if I save the file?
Set 23 19:17:01 <paolo>	actually, at the moment it does not restore it due to a bug
Set 23 19:17:14 <debugger>	ah! heheh
Set 23 19:17:28 <debugger>	I use vim, and it does that. hehe
Set 23 19:17:29 <paolo>	but it saves other info like the selected hl mode, the last searched text and so on
Set 23 19:18:05 <paolo>	I took the idea from vim
Set 23 19:18:17 <debugger>	btw, I think it should only save the hl mode if it has been changed hehe
Set 23 19:18:26 <paolo>	yes
Set 23 19:18:31 <debugger>	(same goes to the encoding)
Set 23 19:18:41 <debugger>	atime?
Set 23 19:19:16 <paolo>	it is needed since the metadata files contains only the info of the last 200 or so opened files
Set 23 19:19:22 <debugger>	added time?  time when added to the file?
Set 23 19:19:26 <debugger>	(metadata file)
Set 23 19:19:37 <paolo>	access time
Set 23 19:19:38 <debugger>	ah, yes.
Set 23 19:20:10 <debugger>	humm, why you need access time?
Set 23 19:20:23 <paolo>	BTW, you can save the group associated to a file
Set 23 19:20:44 <paolo>	since the oldest entries are removed when needed
Set 23 19:20:51 <debugger>	ah .. access time of the file inside gedit.  and not access time of the file in disk, right?
Set 23 19:20:57 <paolo>	yep
Set 23 19:21:18 <debugger>	ok. makes sense =)
Set 23 19:22:16 <debugger>	that group thing, can go to a second iteration.   we need to discuss that more in depth. hehe
Set 23 19:23:07 <debugger>	I will update the dialogs to make then HIG. and send it to ml. then I will implement the alpha alpha version of it =)
Set 23 19:23:19 <debugger>	but first I will change gedit.
Set 23 19:23:49 <debugger>	BTW, we need to talk about that!
Set 23 19:24:22 <debugger>	you didn't comment on that part! hehe
Set 23 19:24:59 <paolo>	no comments on that part
Set 23 19:25:08 <debugger>	no?
Set 23 19:25:25 <debugger>	so, I go and add a "action" signal to the output window?
Set 23 19:25:27 <paolo>	I still have to think about it and I need more details about your idea
Set 23 19:25:38 <paolo>	is it enough?
Set 23 19:26:04 <debugger>	that and a output_cleared / output_destroyed signal.
Set 23 19:26:10 <debugger>	and thats it.
Set 23 19:26:26 <paolo>	destroy is not needed since you already have it in gtk+
Set 23 19:26:45 <paolo>	output_cleared is ok for me
Set 23 19:27:11 <debugger>	ok, so I will add "action" signal and a "output_cleared" one?
Set 23 19:27:19 <paolo>	ok
Set 23 19:27:24 <paolo>	I have to go now. 
Set 23 19:27:37 <debugger>	w8!  1 sec: )
Set 23 19:27:41 <paolo>	Could you please post this IRC conversation on ML?
Set 23 19:27:54 <debugger>	yes I can.
Set 23 19:28:39 <debugger>	I need the text of the line to be passed in the signal, so I passed it on the signal?  or should I had something to extract a line of text from output window?
Set 23 19:28:50 <debugger>	s/ot/or
Set 23 19:29:00 <debugger>	s/had/add ....
Set 23 19:30:53 <paolo>	probably the second is better
Set 23 19:31:18 <debugger>	ok, something like, get_selected_line, get_line_text ?
Set 23 19:31:52 <debugger>	humm, get_selected_line no.  the line number will be passed in the signal.
Set 23 19:32:01 <paolo>	get_text_at_line
Set 23 19:32:15 <debugger>	ok.
Set 23 19:32:19 <debugger>	you can go now =)
Set 23 19:32:26 <debugger>	and thx :)
Set 23 19:32:39 <paolo>	also a get_selected_line function could be useful (it returns an index)
Set 23 19:32:53 <debugger>	but, if there are multiple lines selected?
Set 23 19:32:55 <paolo>	so the signal could be without parameters
Set 23 19:33:01 <paolo>	right
Set 23 19:33:17 <paolo>	remove my last comment :-)
Set 23 19:33:47 <paolo>	I think you are doing a great work
Set 23 19:33:53 <paolo>	thank you very much
Set 23 19:34:05 <debugger>	hehe thanks :)
Set 23 19:34:09 <paolo>	bye
Set 23 19:34:17 <debugger>	cya
Set 23 19:34:29 <--	paolo has quit (Client Exiting)

Attachment: tools.glade.bz2
Description: application/bzip



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]