Hello Carlos. I expected any answer, so this one is fine. Thanks.
However, grep doesn't seem to me as a reliable entrypoint. Not
everybody know how to search for shortcut - I'd search for 'Ctrl-F'
instead of 'Ctrl+F' for example.

I thought of is a more reliable instrument to find the relevant piece
of code - it is a panel that show what happens when you press a key.
This requires:
1. [ ] create panel that can be called from '?' menu entry - probably
called 'Internal messages...'
2. [ ] add function that is called when key is pressed and logs action
and piece of code that it is going to call
        Two questions here:
        - is that possible at all?
        - how seriously it will affect performance?
3. [ ] add checkbox on the messages panel that will allow to
dynamically turn on/off messages from keypresses

Possible message format:
(component) Action, Param1, Param2, ...

Possible format for keys handling component:
(core.keys) Ctrl-F, Action(), Location

Possible format for Location component:
{spyder}.utils.something - message from spyderlib
{plugin}.something - message from external plugin


This will require adding a separate function to add shortcuts. As a
side effect, such function can be used to maintain a registry of
available keys, to show it and spit warnings when on attempt to add
duplicate keys. Maybe Qt maintains such list and handles conflicts
itself already?
--
anatoly t.



2011/9/23 Carlos Córdoba <[email protected]>:
> Anatoly, is this the kind of answer you were expecting? Or were you
> expecting something else? Unfortunately this is all the advice I can give as
> a semi-regular developer, but perhaps others can comment on this thread.
>
> Carlos
>
> El 22/09/11 16:30, Carlos Córdoba escribió:
>
> Hi Anatoly,
>
> I've seen you also work on Linux so I think you'll find my few advices
> useful:
>
> 1. First, use ack to find the file you need to work on. ack is a perl script
> that behaves pretty much like grep, but doesn't search inside binaries,
> build dirs, nor .hg or .git ones. It's been explicitly designed to easily
> search source code trees and it has colored output.
>
> In Ubuntu you can install it with:
>
> $ sudo apt-get install ack-grep
>
> In your case, I'd run a search for Ctrl-F with it, because that's how the
> widget is called. Something like
>
> $ ack-grep 'Ctrl\+F'
>
> inside the spyderlib dir gives one promising result (apart from others):
>
> widgets/findreplace.py
> 142:        self.togglefind_sc = QShortcut(QKeySequence("Ctrl+F"), parent,
> 167:                (self.togglefind_sc, "Find text", "Ctrl+F"),
>
> So now you know that widgets/findreplace.py is your starting point.
>
> 2. Now my advice become less explicit and more general. Obviously, your next
> step is open the file and start to look at their classes. Maybe you realize
> all you need to do is to modify code inside it. But it could be the case
> that a class in it inherits a class from other file, which is the one you
> think you have to modify. So you run ack again to find where this new code
> is located, and so on until you find the right spot.
>
> 3. Always maintain the Internal Console open to read the errors you get
> while you hack on Spyder. I found it an invaluable tool to understand what I
> am doing wrong. You can also add print statements to any file and the
> results will be printed in the Internal console too (or simply in the
> terminal from which you launched Spyder). That's quite cool! For example, it
> let me solve Issue 647.
>
> 4. Browse the Qt docs with passion to find how to use their classes and
> libraries. At least I have to do that a lot since I know pretty much nothing
> about Qt.
>
> That's all I have to say. Maybe we could setup an IRC channel or use gmail
> chat to work on bugs/enhancements together. I'm sure our productivity will
> improve a lot.
>
> Pierre, what do you think?
>
> Cheers,
> Carlos
>
> El 22/09/11 04:47, anatoly techtonik escribió:
>
> I won't expand on how cool it is if people with no knowledge of Spyder
> codebase could send a patch in just a few hours. And to make this happen
> they need two things:
>
> An entrypoint
> Some guidance
>
> Even if I know spyderlib a bit, right now I am in position of such a person
> - with no entrypoint and guidance at all. So, this is a question to all
> developers - how can one find the source of a problem when Spyder
> misbehaves? I'd like to limit the scope to this specific case - Spyder fails
> to focus on search panel that is called by pressing Ctrl-F in editor if this
> panel is already present.
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "spyder" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/spyderlib/-/iAJonFU2mNcJ.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/spyderlib?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups
> "spyder" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/spyderlib?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"spyder" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/spyderlib?hl=en.

Reply via email to