UNPKG

solidity-antlr4

Version:

Solidity Lang Lexer and Parser by official ANTLR4 grammar

53 lines (52 loc) 2.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.printComment = exports.massageAstNode = exports.isBlockComment = exports.handleComments = exports.canAttachComment = void 0; var _prettier = require("prettier"); var _base = require("./base.cjs"); const isBlockComment = node => { return node?.type && _base.blockComments.includes(node.type); }; exports.isBlockComment = isBlockComment; const canAttachComment = node => !!node?.type && !_base.comments.includes(node.type); exports.canAttachComment = canAttachComment; const printComment = (path, _options) => { const comment = path.node; if (!comment.text) return ""; if (comment.text.startsWith("///")) { const content = comment.text.replace("///", "").trim(); return ["/// ", content]; } if (comment.text.startsWith("//")) { const content = comment.text.replace("//", "").trim(); return ["// ", content]; } const isMultiline = comment.text.includes("\n"); const multiline = isMultiline ? _prettier.doc.builders.hardline : _prettier.doc.builders.line; if (comment.text.startsWith("/**") && comment.text.endsWith("*/")) { const lines = comment.text.slice(3, -2).split("\n").map(line => { const trimmed = line.trim(); if (trimmed.startsWith("*")) { return trimmed.slice(1).trim(); } return trimmed; }).filter(Boolean); return ["/**", multiline, _prettier.doc.builders.join(multiline, lines.map(line => [" * ", line])), multiline, " */"]; } if (comment.text.startsWith("/*") && comment.text.endsWith("*/")) { const lines = comment.text.slice(2, -2).split("\n").map(line => line.trim()).filter(Boolean); return ["/*", multiline, _prettier.doc.builders.join(multiline, lines), multiline, "*/"]; } return comment.text; }; exports.printComment = printComment; const ignoredProperties = /* @__PURE__ */new Set(["location", "range", "comments"]); const massageAstNode = () => {}; exports.massageAstNode = massageAstNode; massageAstNode.ignoredProperties = ignoredProperties; const handleComments = exports.handleComments = { // ownLine: (commentNode, text, options, ast, isLastComment) => false, // endOfLine: (commentNode, text, options, ast, isLastComment) => false, // remaining: (commentNode, text, options, ast, isLastComment) => false, };