mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
Improve Broxygen end-of-sentence detection.
This is used to display short summaries for things based on the first sentence in the comments for it, but wouldn't work well when e.g. a filename is used there.
This commit is contained in:
parent
3d010f3bb6
commit
ee01a67e06
4 changed files with 40 additions and 6 deletions
|
@ -167,6 +167,10 @@ export {
|
|||
# it's fine if the type is inferred, that information is self-documenting
|
||||
global var_without_explicit_type = "this works";
|
||||
|
||||
## The first.sentence for the summary text ends here. And this second
|
||||
## sentence doesn't show in the short description.
|
||||
global dummy: string;
|
||||
|
||||
############## functions/events ############
|
||||
|
||||
## Summarize purpose of "a_function" here.
|
||||
|
|
|
@ -74,6 +74,27 @@ int BroDocObj::LongestShortDescLen() const
|
|||
return max;
|
||||
}
|
||||
|
||||
static size_t end_of_first_sentence(string s)
|
||||
{
|
||||
size_t rval = 0;
|
||||
|
||||
while ( (rval = s.find_first_of('.', rval)) != string::npos )
|
||||
{
|
||||
if ( rval == s.size() - 1 )
|
||||
// Period is at end of string.
|
||||
return rval;
|
||||
|
||||
if ( isspace(s[rval + 1]) )
|
||||
// Period has a space after it.
|
||||
return rval;
|
||||
|
||||
// Period has some non-space character after it, keep looking.
|
||||
++rval;
|
||||
}
|
||||
|
||||
return rval;
|
||||
}
|
||||
|
||||
void BroDocObj::FormulateShortDesc()
|
||||
{
|
||||
if ( ! reST_doc_strings )
|
||||
|
@ -87,7 +108,7 @@ void BroDocObj::FormulateShortDesc()
|
|||
{
|
||||
// The short description stops at the first sentence or the
|
||||
// first empty comment.
|
||||
size_t end = it->find_first_of(".");
|
||||
size_t end = end_of_first_sentence(*it);
|
||||
|
||||
if ( end == string::npos )
|
||||
{
|
||||
|
|
|
@ -20,11 +20,11 @@ Options
|
|||
|
||||
Types
|
||||
#####
|
||||
======================================= ======================================
|
||||
:bro:type:`TestEnum1`: :bro:type:`enum` There's tons of ways an enum can look.
|
||||
======================================= ========================================
|
||||
:bro:type:`TestEnum1`: :bro:type:`enum` There's tons of ways an enum can look...
|
||||
|
||||
:bro:type:`TestEnum2`: :bro:type:`enum` The final comma is optional
|
||||
======================================= ======================================
|
||||
======================================= ========================================
|
||||
|
||||
Redefinitions
|
||||
#############
|
||||
|
|
|
@ -40,13 +40,15 @@ Options
|
|||
|
||||
State Variables
|
||||
###############
|
||||
=========================================================================== =======================================
|
||||
=========================================================================== ==================================================
|
||||
:bro:id:`Example::a_var`: :bro:type:`bool` put some documentation for "a_var" here
|
||||
|
||||
:bro:id:`Example::var_with_attr`: :bro:type:`count` :bro:attr:`&persistent`
|
||||
|
||||
:bro:id:`Example::var_without_explicit_type`: :bro:type:`string`
|
||||
=========================================================================== =======================================
|
||||
|
||||
:bro:id:`Example::dummy`: :bro:type:`string` The first.sentence for the summary text ends here.
|
||||
=========================================================================== ==================================================
|
||||
|
||||
Types
|
||||
#####
|
||||
|
@ -156,6 +158,13 @@ State Variables
|
|||
:Type: :bro:type:`string`
|
||||
:Default: ``"this works"``
|
||||
|
||||
.. bro:id:: Example::dummy
|
||||
|
||||
:Type: :bro:type:`string`
|
||||
|
||||
The first.sentence for the summary text ends here. And this second
|
||||
sentence doesn't show in the short description.
|
||||
|
||||
Types
|
||||
#####
|
||||
.. bro:type:: Example::SimpleEnum
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue