Re: [ANNOUNCE] Kconfiglib menuconfig implementation

From: Randy Dunlap
Date: Fri May 25 2018 - 18:06:18 EST


On 05/22/2018 03:18 AM, Ulf Magnusson wrote:
> On Mon, May 21, 2018 at 5:47 AM, Randy Dunlap <rdunlap@xxxxxxxxxxxxx> wrote:
>> On 05/20/2018 08:33 PM, Ulf Magnusson wrote:
>>> On Mon, May 21, 2018 at 4:45 AM, Randy Dunlap <rdunlap@xxxxxxxxxxxxx> wrote:
>>>> On 05/19/2018 09:47 PM, Ulf Magnusson wrote:
>>>>> On Sun, May 20, 2018 at 6:03 AM, Randy Dunlap <rdunlap@xxxxxxxxxxxxx> wrote:
>>>>>> On 05/19/2018 08:45 PM, Randy Dunlap wrote:
>>>>>>> On 05/08/2018 09:59 AM, Ulf Magnusson wrote:
>>>>>>>> Hello,
>>>>>>>>
>>>>>>>> I've added incremental search for jumping directly to a symbol now.
>>>>>>>> Regular expressions are supported as well.
>>>>>>>>
>>>>>>>> Some screenshots below:
>>>>>>>>
>>>>>>>> https://raw.githubusercontent.com/ulfalizer/Kconfiglib/screenshots/screenshots/ss10.png
>>>>>>>> https://raw.githubusercontent.com/ulfalizer/Kconfiglib/screenshots/screenshots/ss11.png
>>>>>>>> https://raw.githubusercontent.com/ulfalizer/Kconfiglib/screenshots/screenshots/ss13.png
>>>>>>>>
>>>>>>>> The last screenshot shows how things might look after you jump to a
>>>>>>>> symbol. The jumped-to symbol wasn't visible in this case, so show-all
>>>>>>>> mode was turned on automatically.
>>>>>>>
>>>>>>> Hi Ulf,
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Hm, OK, I used the trick that you supplied a few weeks ago and I have the UI now.
>>>>>>>
>>>>>>> ARCH=x86 SRCARCH=x86 KERNELVERSION=`make kernelversion` \
>>>>>>> Kconfiglib/menuconfig.py
>>>>>>>
>>>>>>> so yes, a real Makefile target would be nice. :)
>>>>>>
>>>>>> I want to see all kconfig symbols that end with "_DEBUG" (so excluding
>>>>>> _DEBUGFS). Using:
>>>>>>
>>>>>> /.*_DEBUG$
>>>>>>
>>>>>> shows me 6 symbols:
>>>>>> ATH9K_COMMON_DEBUG
>>>>>> DVB_B2C2_FLEXCOP_DEBUG
>>>>>> HAVE_DMA_API_DEBUG
>>>>>> IP_DCCP_TFRC_DEBUG
>>>>>> NFS_DEBUG
>>>>>> PM_SLEEP_DEBUG
>>>>>>
>>>>>> so where are the other (approx.) 176?
>>>>>> see:
>>>>>> $ find . -name Kconfig\* | xargs grep "config.*_DEBUG$" | grep -v \.orig | wc
>>>>>> 182 364 9179
>>>>>>
>>>>>>
>>>>>> Anyway, something for you to look at. :)
>>>>>>
>>>>>> --
>>>>>> ~Randy
>>>>>
>>>>> It's related to how the search is done. Searching for "DEBUG\b" (word
>>>>> boundary) instead will find all of them.
>>>>>
>>>>> A string is generated for each symbol. For symbols with prompts, this
>>>>> string includes the prompt as well, so you get e.g.
>>>>>
>>>>> AB8500_DEBUG "Enable debug info via debugfs"
>>>>>
>>>>> Those strings are then searched/displayed.
>>>>>
>>>>> What you got with your search was all symbols whose names end in
>>>>> "_DEBUG" that don't have a prompt.
>>>>>
>>>>> The nice thing about searching both the name and the prompt is that
>>>>> e.g. "debugfs ab8500" will find the symbol above. I'm also planning to
>>>>> add menus to the search, by generating 'menu: "menu title"' strings
>>>>> for them.
>>>>>
>>>>> It's a bit awkward/unintuitive that what you tried doesn't work
>>>>> though. Maybe the symbol name could be searched separately from the
>>>>> prompt, though I'd be a bit sad to abandon the super simple
>>>>> single-string-per-entry implementation approach. :)
>>>>
>>>> Hi Ulf,
>>>>
>>>> What else are you planning to do with /(search)?
>>>
>>> Here's the stuff I've thought of so far:
>>>
>>> - Display invisible symbols in red (to match show-all mode)
>>>
>>> - Search prompts of menus and comments as well
>>>
>>> - Have [F1] show the help display without canceling the search,
>>> so you can quickly scan through a bunch of symbols
>>>
>>> Maybe you could get fancy with stuff like finding symbols that are
>>> related to other symbols in particular ways too...
>>>
>>>> /syscall lists 20 or so symbols. It would be nice if each one of those
>>>> showed its current setting [y,n,maybe^Wm].
>>>
>>> Nice idea. I added it:
>>> https://github.com/ulfalizer/Kconfiglib/commit/3161affaa5bb8350a39bfd305c56171a25b02151
>>>
>>> Works for strings/int/hex too.
>>
>> Thanks.
>>
>>>> I like Toggle show-all mode. When I use xconfig, I usually turn on most
>>>> of its options, including one like that.
>>>
>>> IIRC, xconfig doesn't make it very clear which symbols are invisible
>>> in show-all mode. That's why I made them red.
>>
>> Yes, that's helpful.
>>
>>
>> --
>> ~Randy
>
> Hello,
>
> I've added a mode that lists the names of all symbols in the menu now
> as well, toggled with 'c' ('n' was taken :).
>
> Any other features you miss from xconfig? Other suggestions?

Hi Ulf,

Nothing comes to mind just now. I'll let you know if I think of anything else.

thanks,
--
~Randy