Add highlight rendering for "selected" grammar mistakes
This commit is contained in:
parent
f695f4b150
commit
cc88584802
30
service.js
30
service.js
@ -41,6 +41,7 @@ class BesService {
|
|||||||
this.enabledCategories = []
|
this.enabledCategories = []
|
||||||
this.disabledCategories = []
|
this.disabledCategories = []
|
||||||
this.results = [] // Results of grammar-checking, one per each block/paragraph of text
|
this.results = [] // Results of grammar-checking, one per each block/paragraph of text
|
||||||
|
this.highlightedRects = []
|
||||||
this.createCorrectionPanel()
|
this.createCorrectionPanel()
|
||||||
|
|
||||||
// Disable browser built-in spell-checker to prevent collision with our grammar markup.
|
// Disable browser built-in spell-checker to prevent collision with our grammar markup.
|
||||||
@ -331,10 +332,10 @@ class BesService {
|
|||||||
const scrollPanelRect = this.scrollPanel.getBoundingClientRect()
|
const scrollPanelRect = this.scrollPanel.getBoundingClientRect()
|
||||||
let highlights = []
|
let highlights = []
|
||||||
const dpr = window.devicePixelRatio
|
const dpr = window.devicePixelRatio
|
||||||
this.ctx.lineWidth = 1 * dpr
|
this.ctx.lineWidth = 2 * dpr // Use 2 for clearer visibility
|
||||||
this.ctx.strokeStyle = ruleId.startsWith('MORFOLOGIK_RULE')
|
this.ctx.strokeStyle = ruleId.startsWith('MORFOLOGIK_RULE')
|
||||||
? '#e91313'
|
? '#ff7300'
|
||||||
: '#269b26'
|
: '#007bff'
|
||||||
for (let rect of range.getClientRects()) {
|
for (let rect of range.getClientRects()) {
|
||||||
const x = (rect.left - scrollPanelRect.left) * dpr
|
const x = (rect.left - scrollPanelRect.left) * dpr
|
||||||
const y = (rect.top - scrollPanelRect.top) * dpr
|
const y = (rect.top - scrollPanelRect.top) * dpr
|
||||||
@ -467,7 +468,26 @@ class BesService {
|
|||||||
* @param {*} match Grammar checking rule match
|
* @param {*} match Grammar checking rule match
|
||||||
*/
|
*/
|
||||||
highlightMistake(match) {
|
highlightMistake(match) {
|
||||||
console.log(match)
|
// TODO: Če sta 2 napaki v istem rectu, se prikaže samo zgornja/zadnja (oz. tista, ki jo uporabnik klikne). To pa pomeni, da se lahko podčrtana barva razlikuje od "highlight" barve.
|
||||||
|
const highlightColor = match.match.rule.id.startsWith('MORFOLOGIK_RULE')
|
||||||
|
? '#ff7300'
|
||||||
|
: '#007bff'
|
||||||
|
|
||||||
|
match.highlights.forEach(highlight => {
|
||||||
|
const rect = highlight
|
||||||
|
const highlightElement = document.createElement('div')
|
||||||
|
highlightElement.classList.add('highlight-rect')
|
||||||
|
highlightElement.style.position = 'absolute'
|
||||||
|
highlightElement.style.left = `${rect.x}px`
|
||||||
|
highlightElement.style.top = `${rect.y}px`
|
||||||
|
highlightElement.style.width = `${rect.width}px`
|
||||||
|
highlightElement.style.height = `${rect.height}px`
|
||||||
|
highlightElement.style.backgroundColor = highlightColor
|
||||||
|
highlightElement.style.opacity = '0.5'
|
||||||
|
highlightElement.style.cursor = 'text'
|
||||||
|
document.body.appendChild(highlightElement)
|
||||||
|
this.highlightedRects.push(highlightElement)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -919,6 +939,7 @@ class BesTreeService extends BesService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
BesPopup.hide()
|
BesPopup.hide()
|
||||||
|
this.highlightedRects.forEach(h => h.remove())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1592,6 +1613,7 @@ class BesPlainTextService extends BesService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
BesPopup.hide()
|
BesPopup.hide()
|
||||||
|
this.highlightedRects.forEach(h => h.remove())
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user