{"format":1,"manifest":{"name":"todo-highlight","publisher":"vyloxi","version":"1.1.0","displayName":"TODO Highlight","description":"Makes TODO, FIXME, HACK, BUG and NOTE stand out in your comments with colored labels.","engines":{"ferrum":"^0.1.1"},"categories":["Productivity"],"icon":"icon.png","repository":"https://github.com/voukengdongmofrankysteve/ferrum-market","license":"MIT","main":"extension.js","activationEvents":["onStartup"],"permissions":[],"contributes":{"commands":[],"configuration":{"title":"TODO Highlight","properties":{"todoHighlight.enabled":{"type":"boolean","default":true,"description":"Highlight the tags."},"todoHighlight.tags":{"type":"string","default":"","description":"Your own tags, separated by commas. Empty means TODO, FIXME, BUG, HACK, XXX, NOTE, REVIEW and OPTIMIZE."}}}}},"files":{"icon.png":{"encoding":"base64","content":"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"},"extension.js":{"encoding":"utf8","content":"// TODO Highlight: makes TODO, FIXME, HACK, BUG, NOTE and other tags in your comments stand out, with decorations.\n\nconst DEFAULT_TAGS = { TODO: '#3b82f6', FIXME: '#ef4444', BUG: '#ef4444', HACK: '#f59e0b', XXX: '#f59e0b', NOTE: '#10b981', REVIEW: '#8b5cf6', OPTIMIZE: '#14b8a6' };\n\nfunction tagTable() {\n  const custom = String(ferrum.settings.get('todoHighlight.tags') || '').split(/[,\\s]+/).filter(Boolean);\n  if (!custom.length) return DEFAULT_TAGS;\n  const out = {};\n  custom.slice(0, 20).forEach((t, i) => (out[t.toUpperCase()] = DEFAULT_TAGS[t.toUpperCase()] || ['#3b82f6', '#ef4444', '#f59e0b', '#10b981', '#8b5cf6'][i % 5]));\n  return out;\n}\n\n/** Where tags sit in comment text: [{ line, col, tag, len }]. Same rules as the TODO Tree extension. */\nfunction scan(text, tags) {\n  const names = Object.keys(tags);\n  if (!names.length) return [];\n  const re = new RegExp('(?:^|[^A-Za-z0-9_])(' + names.map((t) => t.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')).join('|') + ')\\\\b', 'g');\n  const found = [];\n  const lines = text.split('\\n');\n  for (let i = 0; i < lines.length && found.length < 5000; i++) {\n    const line = lines[i];\n    if (line.length > 1500) continue;\n    const c = /(?:\\/\\/|#|--|;|%|\\/\\*|<!--|^\\s*\\*)/.exec(line);\n    if (!c) continue;\n    re.lastIndex = c.index;\n    const m = re.exec(line);\n    if (!m) continue;\n    const tag = m[1];\n    const col = m.index + m[0].length - tag.length;\n    found.push({ line: i, col, tag, len: tag.length, rest: line.length });\n  }\n  return found;\n}\n\nexports._test = { scan, DEFAULT_TAGS };\n\nexports.activate = function (context) {\n  let types = new Map();\n  let timer = null;\n\n  function build() {\n    for (const t of types.values()) t.dispose();\n    types = new Map();\n    const tags = tagTable();\n    for (const [tag, color] of Object.entries(tags)) {\n      const t = ferrum.editor.createDecorationType({ backgroundColor: color, color: '#ffffff', fontWeight: 'bold', borderRadius: 3 });\n      types.set(tag, t);\n    }\n  }\n\n  async function paint() {\n    const doc = await ferrum.editor.active();\n    if (!doc) return;\n    if (ferrum.settings.get('todoHighlight.enabled') === false) {\n      for (const t of types.values()) await ferrum.editor.setDecorations(t, []);\n      return;\n    }\n    const tags = tagTable();\n    const hits = scan(doc.text, tags);\n    const by = new Map([...types.keys()].map((k) => [k, []]));\n    for (const h of hits) by.get(h.tag)?.push({ start: { line: h.line, col: h.col }, end: { line: h.line, col: h.col + h.len }, hoverMessage: h.tag });\n    for (const [tag, t] of types) await ferrum.editor.setDecorations(t, by.get(tag) || []);\n  }\n  const later = () => {\n    clearTimeout(timer);\n    timer = setTimeout(paint, 60);\n  };\n\n  build();\n  context.subscriptions.push(\n    ferrum.events.on('activeChanged', later),\n    ferrum.events.on('open', later),\n    ferrum.events.on('change', later),\n    ferrum.events.on('settingsChanged', () => { build(); later(); }),\n    { dispose: () => { clearTimeout(timer); for (const t of types.values()) t.dispose(); } },\n  );\n  later();\n};\n\nexports.deactivate = function () {};\n"},"README.md":{"encoding":"utf8","content":"# TODO Highlight\n\nTags in comments get a colored label: blue TODO, red FIXME and BUG, amber HACK and XXX, green NOTE, purple REVIEW, teal OPTIMIZE. Only tags inside comments are marked, so a variable named `TODO_LIST` is left alone. Use it with **TODO Tree** to also list them in the sidebar.\n\nUses the **decorations** API. No permissions needed.\n"}}}