fileTypes name Integer BASIC patterns match ^\d+ name entity.name.function.line-number match \b(?i:rem).*$ name comment.line begin " end " name string.quoted.double match \d+ name constant.numeric match \b(?i:goto|if|then|for|to|step|next|gosub|return|pop|stop|con|end)(?![$])\b name keyword.control match \b(?i:list)(?![$])\b name keyword.control.immediate match \b(?i:poke|call|trace|notrace|dsp|nodsp)(?![$])\b name keyword.utility match \b(?i:himem|lomem): name keyword.utility.colon match \b(?i:peek)(?=\() name support.function.utility match \b(?i:gr|color|plot|hlin|vlin|at)(?![$])\b name keyword.graphics match \b(?i:scrn)(?=\() name support.function.graphics match \b(?i:tab|text|vtab|print|input)(?![$])\b name keyword.io match \b(?i:in|pr)# name keyword.io.hash match \b(?i:pdl)(?=\() name support.function.io match \b(?i:and|or|not)(?![$])\b name keyword.operator.logical match \b(?i:mod)(?![$])\b name keyword.operator.arithmetic match \b(?i:dim|let)(?![$])\b name keyword.variable match \b(?i:abs|sgn|rnd)(?=\() name support.function.arithmetic match \b(?i:len|asc)(?=\() name support.function.string comment uses non-greedy *? so keywords get a first shot match \b[A-Za-z][A-Za-z0-9]*[$]? name variable scopeName source.integer-basic uuid 6DCD7377-9CDB-4F16-B957-3EC5826492C3