Added option to merge subsequent single line comments into a single line comment block.
This commit is contained in:
parent
111777c821
commit
9b272c9302
|
@ -105,7 +105,7 @@ class JsBlock:
|
||||||
"***************************************************************\n"
|
"***************************************************************\n"
|
||||||
+ "** Type: " + str(self.typ) + "\n" + "** Start: " + str(
|
+ "** Type: " + str(self.typ) + "\n" + "** Start: " + str(
|
||||||
self.start) + "\n" + "** End: " + str(
|
self.start) + "\n" + "** End: " + str(
|
||||||
self.end) + "\n" + str_msg +self.content.strip() + "\n" +
|
self.end) + "\n" + str_msg + self.content.strip() + "\n" +
|
||||||
"***************************************************************\n"
|
"***************************************************************\n"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -180,9 +180,9 @@ def mince_js_fileobj(fileobj):
|
||||||
(is_code_or_string_literal(state) and is_comment(suc_state))):
|
(is_code_or_string_literal(state) and is_comment(suc_state))):
|
||||||
if content.strip():
|
if content.strip():
|
||||||
yield (JsBlock(state, (block_start_line, block_start_cpos),
|
yield (JsBlock(state, (block_start_line, block_start_cpos),
|
||||||
(line, cpos), content, string_literals))
|
(line, cpos), content, string_literals))
|
||||||
if char == '\n':
|
if char == '\n':
|
||||||
block_start_line = line+1
|
block_start_line = line + 1
|
||||||
block_start_cpos = 1
|
block_start_cpos = 1
|
||||||
else:
|
else:
|
||||||
block_start_line = line
|
block_start_line = line
|
||||||
|
@ -203,9 +203,62 @@ def mince_js_fileobj(fileobj):
|
||||||
(line, cpos), content, string_literals))
|
(line, cpos), content, string_literals))
|
||||||
|
|
||||||
|
|
||||||
def mince_js(file):
|
def mince_js_fileobj_slc_blocks(fileobj):
|
||||||
|
"""Mince JavaScript file object into code and comment blocks (join subsequent
|
||||||
|
single line comments)."""
|
||||||
|
for block in mince_js_fileobj(fileobj):
|
||||||
|
if block.typ == JsBlockType.SINGLE_LINE_COMMENT:
|
||||||
|
start = block.start
|
||||||
|
end = block.end
|
||||||
|
content = block.content
|
||||||
|
single_block = False
|
||||||
|
for suc in mince_js_fileobj(fileobj):
|
||||||
|
if suc.typ == JsBlockType.SINGLE_LINE_COMMENT:
|
||||||
|
content += suc.content
|
||||||
|
end = suc.end
|
||||||
|
single_block = True
|
||||||
|
else:
|
||||||
|
if single_block:
|
||||||
|
yield (JsBlock(JsBlockType.SINGLE_LINE_COMMENT_BLOCK,
|
||||||
|
start, end, content))
|
||||||
|
else:
|
||||||
|
yield block
|
||||||
|
content = ""
|
||||||
|
yield suc
|
||||||
|
break
|
||||||
|
if content.strip() != "":
|
||||||
|
yield (JsBlock(JsBlockType.SINGLE_LINE_COMMENT_BLOCK, start,
|
||||||
|
end, content))
|
||||||
|
else:
|
||||||
|
yield block
|
||||||
|
|
||||||
|
|
||||||
|
def mince_js_file(file):
|
||||||
"""Mince JavaScript file into code and comment blocks."""
|
"""Mince JavaScript file into code and comment blocks."""
|
||||||
with open(file, encoding="utf-8") as fileobj:
|
with open(file, encoding="utf-8") as fileobj:
|
||||||
for block in mince_js_fileobj(fileobj):
|
for block in mince_js_fileobj(fileobj):
|
||||||
yield block
|
yield block
|
||||||
|
|
||||||
|
|
||||||
|
def mince_js_file_slc_blocks(file):
|
||||||
|
"""Mince JavaScript file into code and comment blocks (join subsequent single
|
||||||
|
line comments)."""
|
||||||
|
with open(file, encoding="utf-8") as fileobj:
|
||||||
|
for block in mince_js_fileobj_slc_blocks(fileobj):
|
||||||
|
yield block
|
||||||
|
|
||||||
|
|
||||||
|
def mince_js(file, single_line_comments_block=False):
|
||||||
|
"""Mince JavaScript file (either file name or open file object) into code and
|
||||||
|
comment blocks. Subsequent comment line blocks can be minced into separate
|
||||||
|
entitites or merged."""
|
||||||
|
if isinstance(file, str):
|
||||||
|
if single_line_comments_block:
|
||||||
|
return mince_js_file_slc_blocks(file)
|
||||||
|
else:
|
||||||
|
return mince_js_file(file)
|
||||||
|
else:
|
||||||
|
if single_line_comments_block:
|
||||||
|
return mince_js_fileobj_slc_blocks(file)
|
||||||
|
else:
|
||||||
|
return mince_js_fileobj(file)
|
||||||
|
|
Loading…
Reference in New Issue