Does anyone find the "Flat" function list useful?

Does anyone find the "Flat" function list useful?

79
Advanced UserAdvanced User
79

    Sep 02, 2014#1

    For some unknown reason every now and again my function list gets set to the "Flat List" mode, which for all intents and purposes breaks the function list window into something completely useless (I'm generally looking at C and C++ code which might be a factor here). Unfortunately this happens infrequently enough that I have to spend some time figuring it out how to fix the problem because I can't remember the cause/fix from the previous time. I suppose writing this post will probably help with that memory problem.

    I also looked at a random ruby and python scripts I have on my machine, and while the flat list didn't seem quite as broken as it is for C/C++, that might have been because they weren't particularly big, complex scripts. The flat function lists still didn't seem particularly useful.

    I'm just curious if anyone finds the flat list useful, and if they can describe that use case?

    6,602548
    Grand MasterGrand Master
    6,602548

      Sep 03, 2014#2

      The toggle between between flat and tree-style list can be done easily by right clicking into the Function List view and left click on Flat List.

      I use the flat list for most of my syntax highlighting languages (in UltraEdit) and only for a few languages (in UEStudio) the grouped list is used by me.

      Which one to use depends on type of text file/language and own preferences. For many languages a grouped list is of no use. For example for batch files I list in the function list all labels. There is no need for a grouped list. Same is true for Doxygen settings file, INI/INF files, and many more.

      Also for C/C++ users may want to get listed only the names of the functions and methods to get a simple overview. As UEStudio has the function tips feature to display the parameters of a function/method on typing, a simple list of the names of the functions/methods in current file is enough.

      Finally, most wordfiles in the downloads section are written by users before hierarchical function list feature was introduced in UltraEdit/UEStudio. For all those wordfiles a tree-style list is therefore not available as long as a user does no modify the regular expressions for function list and redefine them using groups.
      Best regards from an UC/UE/UES for Windows user from Austria

      79
      Advanced UserAdvanced User
      79

        Sep 03, 2014#3

        Mofi wrote:The toggle between between flat and tree-style list can be done easily by right clicking into the Function List view and left click on Flat List
        Yes - the problem is that I don't even remember that there's a setting like this until I poke around for a while in irritation that the list is broken. I wish my memory were better, but it is what it is.
        Mofi wrote:For many languages a grouped list is of no use. For example for batch files I list in the function list all labels. There is no need for a grouped list. Same is true for Doxygen settings file, INI/INF files, and many more
        Interesting - I get nothing at all in my function list for batch files or INI files. Does that mean I need better wordfiles for these languages? That's another peeve of mine - why doesn't IDM provide decent wordfiles in an out-of-the-box install for languages which have been around forever and do not change? That's something I don't think I should have to manage myself for most file types.
        Mofi wrote:Also for C/C++ users may want to get listed only the names of the functions and methods to get a simple overview
        Maybe something is misconfigured for me. When I have the Function List set to Flat for a typical C file, I get a list that looks like:

        Code: Select all

        __ALIGN_KERNEL
        __ALIGN_KERNEL
        __ALIGN_KERNEL_MASK
        __ALIGN_MASK
        ALIGN
        ALIGN
        char dst[]
        char dst[]
        char dst[]
        char dst[]
        char dst[]
        char dst[]
        char dst[]
        char dst[]
        char dst[]
        char dst[]
        char dst[]
        char dst[]
        char dst[]
        char dst[]
        char exp[]
        char exp[]
        char exp[]
        char exp[]
        char exp[]
        char exp[]
        char exp[]
        char exp[]
        char exp[]
        char exp[]
        char exp[]
        char exp[]
        char exp[]
        char exp[]
        char src[]
        char src[]
        char src[]
        char src[]
        char src[]
        char src[]
        char src[]
        char src[]
        char src[]
        char src[]
        char src[]
        char src[]
        char src[]
        char src[]
        CuString *output
        CuSuite* suite
        CuSuite* suite
        CuTest *tc
        CuTest *tc
        CuTest *tc
        CuTest *tc
        CuTest *tc
        CuTest *tc
        CuTest *tc
        CuTest *tc
        CuTest *tc
        CuTest *tc
        CuTest *tc
        CuTest *tc
        CuTest *tc
        CuTest *tc
        IS_ALIGNED
        IS_ALIGNED
        IS_PTR_ALIGNED
        IS_PTR_ALIGNED
        main
        Memset_pattern_GetSuite
        memset_patternX
        PTR_ALIGN
        PTR_ALIGN
        ROUND_TO_SIZE
        RunAllTests
        size_t word_count
        TestMemset_pattern4_1
        TestMemset_pattern4_2
        TestMemset_pattern4_3
        TestMemset_pattern4_4
        TestMemset_pattern4_5
        TestMemset_pattern4_aligned_1
        TestMemset_pattern4_aligned_2
        TestMemset_pattern4_aligned_3
        TestMemset_pattern4_aligned_4
        TestMemset_pattern4_aligned_5
        TestMemset_pattern4_aligned_6
        TestMemset_pattern4_aligned_7
        TestMemset_pattern4_aligned_8
        TestMemset_pattern4_aligned_9
        uint32_t val
        uint32_t* word_dst
        void
        void
        void
        Which I find to be mostly useless noise.

        6,602548
        Grand MasterGrand Master
        6,602548

          Sep 04, 2014#4

          mwb1100 wrote:Does that mean I need better wordfiles for these languages? Why doesn't IDM provide decent wordfiles in an out-of-the-box install for languages which have been around forever and do not change?
          You have most likely not installed wordfiles for batch files INI/INF settings, ... There is a huge list of user contributed wordfiles under Downloads - Extras - Wordfiles. The wordfile(s) for batch files are all not perfect. There is no syntax highlighting engine which highlights batch files correct 100% successfully. The syntax for batch files is too irregular to be highligted by any application correct in any case. I use a customized wordfile for syntax highlighting which works very good for my batch file syntax.

          It is not advisable to install to the wordfiles directory, usually %APPDATA%\IDMComp\UltraEdit\wordfiles, a huge list of wordfiles if most of them are usually not used. All the wordfiles are read in on startup of UltraEdit. The more wordfiles are in this directory, the longer needs the startup. Therefore I recommend to have in the wordfiles directory only those wordfiles which are really needed. That makes also the language temlates list shorter and the theme file containing the highlighting color and font style settings for all the wordfiles if individual settings are used at all.
          mwb1100 wrote:Maybe something is misconfigured for me. When I have the Function List set to Flat for a typical C file, I get a list that looks like.
          It is not possible to define regular expression search strings which produce a well looking hierarchical list and at the same time also a well looking flat list. Wordfile c_cplusplus.uew installed with UltraEdit is designed for a hierarchical list. For a flat list the regular expressions need to be changed which can be done by right clicking into function list view and left click on Configuration. Very good knowledge about Perl or UltraEdit regular expression syntax is needed to change those regular expressions to meet personal requirements for a language.

          Examples for differences in function string definitions depending on what should be displayed and how it should be displayed in the function list can be seen by comparing the *.uew files in the RAR archive which can be downloaded from How to get Xbase++ functions defined over multiple lines displayed by IntelliTips? for Xbase++ or by looking on wordfiles_readme.txt in wordfiles.zip for syntax highlighting wordfiles which can be downloaded from the wordfiles download page.

          Everything in a wordfile is customizable. So every user has the possibility to customize what is listed in the function list and how it is displayed as long as finding suitable UltraEdit or Perl regular expressions to get the wanted list.
          Best regards from an UC/UE/UES for Windows user from Austria