mirror of
https://github.com/BoostIo/Boostnote
synced 2025-12-13 01:36:22 +00:00
display lint result on CodeEditor #864
This commit is contained in:
@@ -117,6 +117,39 @@ const languageMaps = {
|
|||||||
elixir: 'Elixir'
|
elixir: 'Elixir'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const validator = (text, updateLinting) => {
|
||||||
|
const markdownlint = require('markdownlint')
|
||||||
|
const lintOptions = {
|
||||||
|
'strings': {
|
||||||
|
'content': text
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return markdownlint(lintOptions, (err, result) => {
|
||||||
|
if (!err) {
|
||||||
|
const foundIssues = []
|
||||||
|
result.content.map(item => {
|
||||||
|
let ruleNames = ''
|
||||||
|
item.ruleNames.map((ruleName, index) => {
|
||||||
|
ruleNames += ruleName
|
||||||
|
if (index === item.ruleNames.length - 1) {
|
||||||
|
ruleNames += ': '
|
||||||
|
} else {
|
||||||
|
ruleNames += '/'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
foundIssues.push({
|
||||||
|
from: CodeMirror.Pos(item.lineNumber, 0),
|
||||||
|
to: CodeMirror.Pos(item.lineNumber, 1),
|
||||||
|
message: ruleNames + item.ruleDescription,
|
||||||
|
severity: 'warning'
|
||||||
|
})
|
||||||
|
})
|
||||||
|
updateLinting(foundIssues)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export default class CodeEditor extends React.Component {
|
export default class CodeEditor extends React.Component {
|
||||||
constructor (props) {
|
constructor (props) {
|
||||||
super(props)
|
super(props)
|
||||||
@@ -344,7 +377,12 @@ export default class CodeEditor extends React.Component {
|
|||||||
inputStyle: 'textarea',
|
inputStyle: 'textarea',
|
||||||
dragDrop: false,
|
dragDrop: false,
|
||||||
foldGutter: true,
|
foldGutter: true,
|
||||||
gutters: ['CodeMirror-linenumbers', 'CodeMirror-foldgutter'],
|
lint: {
|
||||||
|
'getAnnotations': validator,
|
||||||
|
'async': true
|
||||||
|
},
|
||||||
|
mode: 'markdown',
|
||||||
|
gutters: ['CodeMirror-linenumbers', 'CodeMirror-foldgutter', 'CodeMirror-lint-markers'],
|
||||||
autoCloseBrackets: {
|
autoCloseBrackets: {
|
||||||
pairs: this.props.matchingPairs,
|
pairs: this.props.matchingPairs,
|
||||||
triples: this.props.matchingTriples,
|
triples: this.props.matchingTriples,
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
<link rel="stylesheet" href="../node_modules/codemirror/lib/codemirror.css">
|
<link rel="stylesheet" href="../node_modules/codemirror/lib/codemirror.css">
|
||||||
<link rel="stylesheet" href="../node_modules/katex/dist/katex.min.css">
|
<link rel="stylesheet" href="../node_modules/katex/dist/katex.min.css">
|
||||||
<link rel="stylesheet" href="../node_modules/codemirror/addon/dialog/dialog.css">
|
<link rel="stylesheet" href="../node_modules/codemirror/addon/dialog/dialog.css">
|
||||||
|
<link rel="stylesheet" href="../node_modules/codemirror/addon/lint/lint.css">
|
||||||
<link rel="stylesheet" href="../extra_scripts/codemirror/mode/bfm/bfm.css">
|
<link rel="stylesheet" href="../extra_scripts/codemirror/mode/bfm/bfm.css">
|
||||||
|
|
||||||
<title>Boostnote</title>
|
<title>Boostnote</title>
|
||||||
@@ -125,6 +126,9 @@
|
|||||||
<script src="../node_modules/codemirror/addon/dialog/dialog.js"></script>
|
<script src="../node_modules/codemirror/addon/dialog/dialog.js"></script>
|
||||||
<script src="../node_modules/codemirror/addon/display/rulers.js"></script>
|
<script src="../node_modules/codemirror/addon/display/rulers.js"></script>
|
||||||
|
|
||||||
|
<script src="../node_modules/codemirror/addon/lint/lint.js"></script>
|
||||||
|
<script src="../node_modules/codemirror/mode/markdown/markdown.js"></script>
|
||||||
|
|
||||||
<script src="../node_modules/raphael/raphael.min.js"></script>
|
<script src="../node_modules/raphael/raphael.min.js"></script>
|
||||||
<script src="../node_modules/flowchart.js/release/flowchart.min.js"></script>
|
<script src="../node_modules/flowchart.js/release/flowchart.min.js"></script>
|
||||||
<script>
|
<script>
|
||||||
@@ -154,4 +158,4 @@
|
|||||||
</style>
|
</style>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
Reference in New Issue
Block a user