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
|
# it's fine if the type is inferred, that information is self-documenting
|
||||||
global var_without_explicit_type = "this works";
|
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 ############
|
############## functions/events ############
|
||||||
|
|
||||||
## Summarize purpose of "a_function" here.
|
## Summarize purpose of "a_function" here.
|
||||||
|
|
|
@ -74,6 +74,27 @@ int BroDocObj::LongestShortDescLen() const
|
||||||
return max;
|
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()
|
void BroDocObj::FormulateShortDesc()
|
||||||
{
|
{
|
||||||
if ( ! reST_doc_strings )
|
if ( ! reST_doc_strings )
|
||||||
|
@ -87,7 +108,7 @@ void BroDocObj::FormulateShortDesc()
|
||||||
{
|
{
|
||||||
// The short description stops at the first sentence or the
|
// The short description stops at the first sentence or the
|
||||||
// first empty comment.
|
// first empty comment.
|
||||||
size_t end = it->find_first_of(".");
|
size_t end = end_of_first_sentence(*it);
|
||||||
|
|
||||||
if ( end == string::npos )
|
if ( end == string::npos )
|
||||||
{
|
{
|
||||||
|
|
|
@ -20,11 +20,11 @@ Options
|
||||||
|
|
||||||
Types
|
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
|
:bro:type:`TestEnum2`: :bro:type:`enum` The final comma is optional
|
||||||
======================================= ======================================
|
======================================= ========================================
|
||||||
|
|
||||||
Redefinitions
|
Redefinitions
|
||||||
#############
|
#############
|
||||||
|
|
|
@ -40,13 +40,15 @@ Options
|
||||||
|
|
||||||
State Variables
|
State Variables
|
||||||
###############
|
###############
|
||||||
=========================================================================== =======================================
|
=========================================================================== ==================================================
|
||||||
:bro:id:`Example::a_var`: :bro:type:`bool` put some documentation for "a_var" here
|
: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_with_attr`: :bro:type:`count` :bro:attr:`&persistent`
|
||||||
|
|
||||||
:bro:id:`Example::var_without_explicit_type`: :bro:type:`string`
|
: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
|
Types
|
||||||
#####
|
#####
|
||||||
|
@ -156,6 +158,13 @@ State Variables
|
||||||
:Type: :bro:type:`string`
|
:Type: :bro:type:`string`
|
||||||
:Default: ``"this works"``
|
: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
|
Types
|
||||||
#####
|
#####
|
||||||
.. bro:type:: Example::SimpleEnum
|
.. bro:type:: Example::SimpleEnum
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue