This file is indexed.

/usr/share/geany-plugins/geanygendoc/filetypes/c.conf is in geany-plugin-gendoc 1.32+dfsg-3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
settings = {
  # [[modifier ]type ]arg[square brackets, white spaces, ...](,|EOL) with support
  # of prototype as argument types (not recursive).
  # 
  # Detailed expression:
  #function_args=(?:
  #                  matches () and (void) not to try to extract an argument for them
  #               ^\([ \t]*(?:void)?[ \t]*\)$
  #               |
  #                  type or modifier (e.g. "char *")
  #               (?:[a-zA-Z0-9_]+[ \t*]+
  #                   prototype start (e.g. "(*", start of (*arg))
  #                (?:\([ \t*]*)?)*
  #                the argument name itself (only capture)
  #               ([a-zA-Z0-9_.]+)
  #                  prototype end (e.g. ")", end of (*arg))
  #               (?:[ \t]*\))?
  #               possible white-spaces
  #               [ \t]*
  #                  prototype arguments: we match anything between parentheses
  #               (?:\([^)]*\))?
  #               permissive match for post-arg (e.g. array size)
  #               [^,]*
  #               , or EOL
  #               (?:,|$)
  #              )
  # note that \ are escaped, so to have a \ you need to put \\
  match_function_arguments = "(?:^\\([ \t]*(?:void)?[ \t]*\\)$|(?:[a-zA-Z0-9_]+[ \t*]+(?:\\([ \t*]*)?)*([a-zA-Z0-9_.]+)(?:[ \t]*\\))?[ \t]*(?:\\([^)]*\\))?[^,]*(?:,|$))";
  
  # global env
  global_environment = "doxygen_prefix  = \"@\";
                        write_since     = 0;";
}

doctypes = {
  gtkdoc = {
    # Forward should be before the others to match first
    struct.struct.policy    = FORWARD;
    struct.union.policy     = FORWARD;
    struct.prototype.policy = FORWARD;
    member.policy           = FORWARD;
    enumval.policy          = FORWARD;
    
    function = {
      template = "/**\n * {symbol}:\n{for arg in argument_list} * @{arg}: {cursor}\n{end} * \n * {cursor}\n{if returns} * \n * Returns: \n{end}{if write_since}{if returns} * \n{end} * Since: \n{end} */\n";
      position = BEFORE;
      policy   = KEEP;
    }
    macro = {
      template = "/**\n * {symbol}:\n{for arg in argument_list} * @{arg}: {cursor}\n{end} * \n * {cursor}\n{if returns} * \n * Returns: \n{end} */\n";
    }
    struct = {
      template = "/**\n * {symbol}:\n{for member in children} * @{member}: {cursor}\n{end} * \n * {cursor}\n */\n";
      position = BEFORE;
      policy   = KEEP;
      children = MERGE;
      matches  = member | prototype;
    }
    enum = {
      template = "/**\n * {symbol}:\n{for enumval in enumval_list} * @{enumval}: {cursor}\n{end} * \n * {cursor}\n */\n";
    }
    union = {
      template = "/**\n * {symbol}:\n{for member in children} * @{member}: {cursor}\n{end} * \n * {cursor}\n */\n";
      children = MERGE;
    }
    typedef = {
      template = "/**\n * {symbol}:\n * \n * {cursor}\n */\n";
    }
    define = {
      template = "/**\n * {symbol}:\n * \n * {cursor}\n */\n";
    }
  }

  doxygen = {
    function.template = "/**\n * {doxygen_prefix}brief {cursor}\n{for a in argument_list} * {doxygen_prefix}param {a} \n{end}{if returns} * {doxygen_prefix}returns \n{end}{if write_since} * {doxygen_prefix}since \n{end} * \n * \n */\n";
    macro.template    = "/**\n * {doxygen_prefix}brief {cursor}\n{for a in argument_list} * {doxygen_prefix}param {a} \n{end}{if returns} * {doxygen_prefix}returns \n{end}{if write_since} * {doxygen_prefix}since \n{end} * \n * \n */\n";
    struct.member = {
      template = " /**< {cursor} */";
      position = AFTER;
    }
    struct = {
      template          = "/**\n * {doxygen_prefix}brief {cursor}\n * \n * \n */\n";
      auto_doc_children = True;
    }
    union.member = {
      template = " /**< {cursor} */";
      position = AFTER;
    }
    union = {
      template          = "/**\n * {doxygen_prefix}brief {cursor}\n * \n * \n */\n";
      auto_doc_children = True;
    }
    enum = {
      template          = "/**\n * {doxygen_prefix}brief {cursor}\n * \n * \n */\n";
      auto_doc_children = True;
    }
    enum.enumval = {
      template = " /**< {cursor} */";
      position = AFTER;
    }
    typedef.template  = "/**\n * {doxygen_prefix}brief {cursor}\n * \n * \n */\n";
    define.template   = "/**\n * {doxygen_prefix}brief {cursor}\n * \n * \n */\n";
  }
}