├── .babelrc ├── .gitignore ├── LICENSE ├── README.md ├── package.json ├── postcss.config.js ├── src ├── __tests__ │ └── graph-helper.test.js ├── assets │ └── css │ │ ├── tailwind.css │ │ └── visualization.css ├── git-handler.js ├── graph-helper.js ├── index.html ├── index.js ├── language-data.js ├── languages.yml └── visualization.js └── tailwind.config.js /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["@babel/preset-env"] 3 | } 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | 9 | # Diagnostic reports (https://nodejs.org/api/report.html) 10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 11 | 12 | # Runtime data 13 | pids 14 | *.pid 15 | *.seed 16 | *.pid.lock 17 | 18 | # Directory for instrumented libs generated by jscoverage/JSCover 19 | lib-cov 20 | 21 | # Coverage directory used by tools like istanbul 22 | coverage 23 | *.lcov 24 | 25 | # nyc test coverage 26 | .nyc_output 27 | 28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 29 | .grunt 30 | 31 | # Bower dependency directory (https://bower.io/) 32 | bower_components 33 | 34 | # node-waf configuration 35 | .lock-wscript 36 | 37 | # Compiled binary addons (https://nodejs.org/api/addons.html) 38 | build/Release 39 | 40 | # Dependency directories 41 | node_modules/ 42 | jspm_packages/ 43 | 44 | # TypeScript v1 declaration files 45 | typings/ 46 | 47 | # TypeScript cache 48 | *.tsbuildinfo 49 | 50 | # Optional npm cache directory 51 | .npm 52 | 53 | # Optional eslint cache 54 | .eslintcache 55 | 56 | # Optional REPL history 57 | .node_repl_history 58 | 59 | # Output of 'npm pack' 60 | *.tgz 61 | 62 | # Yarn Integrity file 63 | .yarn-integrity 64 | 65 | # dotenv environment variables file 66 | .env 67 | .env.test 68 | 69 | # parcel-bundler cache (https://parceljs.org/) 70 | .cache 71 | 72 | # next.js build output 73 | .next 74 | 75 | # nuxt.js build output 76 | .nuxt 77 | 78 | # gatsby files 79 | .cache/ 80 | public 81 | 82 | # vuepress build output 83 | .vuepress/dist 84 | 85 | # Serverless directories 86 | .serverless/ 87 | 88 | # FuseBox cache 89 | .fusebox/ 90 | 91 | # DynamoDB Local files 92 | .dynamodb/ 93 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Kim Philipp Jablonski 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # GitViz 2 | 3 | Visualize the evolution of a git repository. 4 | Inspired by [Gource](https://gource.io/). 5 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "gitviz", 3 | "version": "0.0.1", 4 | "description": "Visualizae the evolution of a git repository", 5 | "repository": "https://github.com/kpj/GitViz/", 6 | "main": "index.js", 7 | "scripts": { 8 | "dev": "parcel ./src/index.html", 9 | "build": "parcel build ./src/index.html --public-url /GitViz", 10 | "test": "jest", 11 | "deploy": "npm run test && git worktree add -f dist gh-pages && npm run build && cd ./dist && git add . && git commit -m \"Update gh-pages (ref-commit: $(git log '--format=format:%H' master -1))\" && git push origin gh-pages && cd .. && rm -rf dist" 12 | }, 13 | "author": "kpj", 14 | "license": "ISC", 15 | "devDependencies": { 16 | "@babel/preset-env": "^7.4.4", 17 | "babel-core": "^6.26.3", 18 | "babel-jest": "^24.8.0", 19 | "babel-plugin-transform-runtime": "^6.23.0", 20 | "babel-runtime": "^6.26.0", 21 | "jest": "^24.8.0", 22 | "parcel-bundler": "^1.12.3", 23 | "tailwindcss": "^1.1.2" 24 | }, 25 | "dependencies": { 26 | "@isomorphic-git/lightning-fs": "^3.2.1", 27 | "babel-polyfill": "^6.26.0", 28 | "cytoscape": "^3.6.0", 29 | "cytoscape-cola": "^2.3.0", 30 | "isomorphic-git": "^0.54.2", 31 | "vue": "^2.6.10", 32 | "vuex": "^3.1.1", 33 | "vuex-forms": "0.0.7" 34 | }, 35 | "alias": { 36 | "vue": "./node_modules/vue/dist/vue.common.js" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 'plugins': { 3 | 'tailwindcss': 'tailwind.config.js', 4 | 'autoprefixer': {} 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/__tests__/graph-helper.test.js: -------------------------------------------------------------------------------- 1 | import 'babel-polyfill' 2 | import { convertFilesToTree } from '../graph-helper' 3 | 4 | // deal with jest being unable to handle yaml files 5 | // parcel normally bundles them for us 6 | jest.mock('../languages.yml', () => 1) 7 | 8 | // tests 9 | test('construct basic tree', async () => { 10 | expect(await convertFilesToTree([ 11 | { path: 'setup.py' }, 12 | { path: 'project/main.py' }, 13 | { path: 'project/utils.py' }, 14 | { path: 'project/core/handler.py' } 15 | ])).toStrictEqual({ 16 | nodes: [ 17 | { id: '/', label: '/', type: 'directory', extension: undefined }, 18 | { id: '/setup.py', label: 'setup.py', type: 'file', extension: 'py' }, 19 | { id: '/project', label: 'project', type: 'directory', extension: undefined }, 20 | { id: '/project/main.py', label: 'main.py', type: 'file', extension: 'py' }, 21 | { id: '/project/utils.py', label: 'utils.py', type: 'file', extension: 'py' }, 22 | { id: '/project/core', label: 'core', type: 'directory', extension: undefined }, 23 | { id: '/project/core/handler.py', label: 'handler.py', type: 'file', extension: 'py' } 24 | ], 25 | edges: [ 26 | { id: undefined, source: '/', target: '/setup.py' }, 27 | { id: undefined, source: '/', target: '/project' }, 28 | { id: undefined, source: '/project', target: '/project/main.py' }, 29 | { id: undefined, source: '/project', target: '/project/utils.py' }, 30 | { id: undefined, source: '/project', target: '/project/core' }, 31 | { id: undefined, source: '/project/core', target: '/project/core/handler.py' } 32 | ] 33 | }) 34 | }) 35 | -------------------------------------------------------------------------------- /src/assets/css/tailwind.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | 3 | form { 4 | @apply m-auto w-full max-w-lg; 5 | } 6 | 7 | div.form-group { 8 | @apply pb-4; 9 | } 10 | 11 | div.form-group > label { 12 | @apply block uppercase tracking-wide text-gray-700 text-xs font-bold mb-1; 13 | } 14 | 15 | div.form-group > input { 16 | @apply appearance-none block w-full bg-gray-200 text-gray-700 border border-gray-200 rounded py-3 px-4 leading-tight; 17 | } 18 | div.form-group > input:focus { 19 | @apply outline-none bg-white border-gray-500; 20 | } 21 | 22 | form > div > button { 23 | @apply bg-blue-500 text-white font-bold py-2 px-4 rounded; 24 | } 25 | form > div > button:hover { 26 | @apply bg-blue-700; 27 | } 28 | form > div > button:focus { 29 | @apply outline-none shadow-outline; 30 | } 31 | 32 | @tailwind components; 33 | 34 | @tailwind utilities; 35 | -------------------------------------------------------------------------------- /src/assets/css/visualization.css: -------------------------------------------------------------------------------- 1 | #setup { 2 | display: block; 3 | } 4 | 5 | #header { 6 | display: fixed; 7 | font-family: monospace, monospace; 8 | } 9 | 10 | #container { 11 | width: 100%; 12 | height: 100%; 13 | margin: auto; 14 | } 15 | 16 | #commitView { 17 | position: absolute; 18 | bottom: 0; 19 | width: 100%; 20 | max-height: 10%; 21 | overflow-y: hidden; 22 | white-space: nowrap; 23 | font-family: monospace, monospace; 24 | } 25 | 26 | #commitView > .commit:after { 27 | content: '\A'; 28 | white-space: pre; 29 | } 30 | 31 | #commitView > .active { 32 | font-size: large; 33 | } 34 | 35 | #commitView > .inactive { 36 | color: grey; 37 | opacity: 0.4; 38 | } 39 | -------------------------------------------------------------------------------- /src/git-handler.js: -------------------------------------------------------------------------------- 1 | import 'babel-polyfill' // ReferenceError: regeneratorRuntime is not defined 2 | 3 | import FS from '@isomorphic-git/lightning-fs' 4 | import EventEmitter from 'events' 5 | const git = require('isomorphic-git') 6 | 7 | self.onmessage = e => { 8 | parseGitRepository(e.data.repoUrl, e.data.gitBranch).then(data => { 9 | postMessage({ type: 'result', data: data, state: e.data }) 10 | }) 11 | } 12 | 13 | let log = text => { 14 | postMessage({ 15 | type: 'progress', 16 | text: text 17 | }) 18 | } 19 | 20 | export async function parseGitRepository (repoUrl, branch) { 21 | const emitter = new EventEmitter() 22 | 23 | // prepare filesystem 24 | const fs = new FS('fs', { wipe: true }) 25 | git.plugins.set('fs', fs) 26 | git.plugins.set('emitter', emitter) 27 | 28 | const pfs = fs.promises 29 | 30 | // prepare repo directory 31 | const dir = '/repo' 32 | await pfs.mkdir(dir) 33 | 34 | // clone repo 35 | console.log('Cloning repository') 36 | log('Cloning repository') 37 | 38 | const onProgress = async progress => { 39 | // console.log(progress) 40 | log(`${progress.phase} [${progress.loaded}/${progress.total}]`) 41 | } 42 | 43 | emitter.on('progress', onProgress) 44 | await git.clone({ 45 | dir, 46 | corsProxy: 'https://cors.isomorphic-git.org', 47 | url: repoUrl, 48 | ref: branch, 49 | singleBranch: true, 50 | noCheckout: true 51 | }) 52 | emitter.off('progress', onProgress) 53 | 54 | // get data from repo 55 | console.log('Parsing commits') 56 | log('Parsing commits') 57 | const commitList = await git.log({ dir }) 58 | commitList.reverse() 59 | 60 | let data = [] 61 | 62 | let firstCommit = commitList[0] 63 | data.push({ 64 | commit: firstCommit, 65 | files: await git.listFiles( 66 | { dir: dir, ref: firstCommit.oid } 67 | ).then(data => { 68 | return data.map(e => ({ 69 | path: `/${e}`, 70 | type: 'equal' 71 | })) 72 | }) 73 | }) 74 | 75 | for (let i = 0; i < commitList.length - 1; i++) { 76 | let curCommit = commitList[i] 77 | let nextCommit = commitList[i + 1] 78 | 79 | const files = await getFileStateChanges(curCommit.oid, nextCommit.oid, dir) 80 | 81 | data.push({ 82 | commit: nextCommit, 83 | files 84 | }) 85 | 86 | // update progress display 87 | log(`Comparing commits [${i + 1}/${commitList.length - 1}]`) 88 | } 89 | 90 | return data 91 | } 92 | 93 | async function getFileStateChanges (commitHash1, commitHash2, dir) { 94 | return git.walkBeta1({ 95 | trees: [ 96 | git.TREE({ dir: dir, ref: commitHash1 }), 97 | git.TREE({ dir: dir, ref: commitHash2 }) 98 | ], 99 | map: async function ([A, B]) { 100 | // ignore directories 101 | if (A.fullpath === '.') { 102 | return 103 | } 104 | await A.populateStat() 105 | if (A.type === 'tree') { 106 | return 107 | } 108 | await B.populateStat() 109 | if (B.type === 'tree') { 110 | return 111 | } 112 | 113 | // generate ids 114 | await Promise.all([A.populateHash(), B.populateHash()]) 115 | 116 | // determine modification type 117 | let type = 'equal' 118 | if (A.oid !== B.oid) { 119 | type = 'modify' 120 | } 121 | if (A.oid === undefined) { 122 | type = 'add' 123 | } 124 | if (B.oid === undefined) { 125 | type = 'remove' 126 | } 127 | if (A.oid === undefined && B.oid === undefined) { 128 | console.log('Something weird happened:') 129 | console.log(A) 130 | console.log(B) 131 | } 132 | 133 | return { 134 | path: `/${A.fullpath}`, 135 | type: type 136 | } 137 | } 138 | }) 139 | } 140 | -------------------------------------------------------------------------------- /src/graph-helper.js: -------------------------------------------------------------------------------- 1 | import cytoscape from 'cytoscape' 2 | import cola from 'cytoscape-cola' 3 | 4 | import { languageStyles, languageStylesDict } from './language-data' 5 | 6 | export class Graph { 7 | constructor (repoUrl) { 8 | cytoscape.use(cola) 9 | 10 | this.cy = cytoscape({ 11 | container: document.getElementById('container'), 12 | style: [...[ 13 | { 14 | selector: 'node', 15 | style: { 16 | label: 'data(label)', 17 | backgroundColor: 'gray' 18 | } 19 | }, 20 | { 21 | selector: 'node[type="file"]', 22 | style: { 23 | shape: 'ellipse' 24 | } 25 | }, 26 | { 27 | selector: 'node[type="directory"]', 28 | style: { 29 | shape: 'rectangle' 30 | } 31 | } 32 | ], ...languageStyles] 33 | }) 34 | 35 | this.layout = undefined 36 | } 37 | 38 | blinkColor (nodeId, color, blinkDuration) { 39 | // set highlight color 40 | this.cy.getElementById(nodeId).style({ 41 | backgroundColor: color 42 | }) 43 | 44 | // revert to original color 45 | let origColor = languageStylesDict[this.cy.getElementById(nodeId).data('extension')] || 'gray' // this.cy.getElementById(nodeId).style('background-color') 46 | 47 | this.cy.getElementById(nodeId).animate({ 48 | style: { backgroundColor: origColor } 49 | }, { 50 | duration: blinkDuration 51 | }) 52 | } 53 | 54 | render () { 55 | // stop old layout if necessary 56 | if (this.layout !== undefined) { 57 | this.layout.stop() 58 | } 59 | 60 | // create new layout 61 | this.layout = this.cy.layout({ 62 | name: 'cola', 63 | fit: true, // false 64 | infinite: true, 65 | randomize: false, 66 | ungrabifyWhileSimulating: true, 67 | nodeDimensionsIncludeLabels: false, 68 | // ready: () => { 69 | // this.cy.fit() 70 | // } 71 | }) 72 | this.layout.run() 73 | } 74 | 75 | addNodes (nodes) { 76 | this.cy.startBatch() 77 | 78 | for (let entry of nodes) { 79 | this.cy.add({ 80 | group: 'nodes', 81 | data: { 82 | id: entry.id, 83 | label: entry.label, 84 | type: entry.type, 85 | extension: entry.extension 86 | }, 87 | position: entry.position || { x: 0, y: 0 } 88 | }) 89 | } 90 | 91 | this.cy.endBatch() 92 | } 93 | 94 | addEdges (edges) { 95 | this.cy.startBatch() 96 | 97 | for (let entry of edges) { 98 | this.cy.add({ 99 | group: 'edges', 100 | data: { 101 | id: entry.id, 102 | source: entry.source, 103 | target: entry.target 104 | }, 105 | position: { x: 0, y: 0 } 106 | }) 107 | } 108 | 109 | this.cy.endBatch() 110 | } 111 | 112 | /** 113 | * Add new nodes/edges and remove stale ones 114 | */ 115 | changeState (proposedNodes, edges) { 116 | // extract ids 117 | let existingNodesIds = new Set(this.cy.nodes().map(n => n.id())) 118 | let proposedNodeIds = new Set(proposedNodes.map(n => n.id)) 119 | 120 | // check which nodes were added/removed 121 | let addedNodes = proposedNodes.filter(x => !existingNodesIds.has(x.id)) 122 | let removedNodeIds = new Set( 123 | [...existingNodesIds].filter(x => !proposedNodeIds.has(x))) 124 | 125 | // check which edges were added 126 | let addedNodesIds = new Set(addedNodes.map(n => n.id)) 127 | let newEdges = new Set(edges) 128 | let addedEdges = [...newEdges].filter( 129 | x => addedNodesIds.has(x.source) || addedNodesIds.has(x.target)) 130 | 131 | // add starting position to nodes with parent 132 | for (let n of addedNodes) { 133 | let parentId 134 | let parts = n.id.split('/') 135 | 136 | while (!existingNodesIds.has(parentId)) { 137 | parts.pop() 138 | parentId = parts.join('/') || '/' 139 | } 140 | 141 | n.position = Object.assign({}, this.cy.getElementById(parentId).position()) 142 | } 143 | 144 | console.log(addedNodes, addedEdges) 145 | console.log(removedNodeIds) 146 | 147 | // apply changes 148 | let somethingChanged = false 149 | 150 | // add new entities 151 | if (addedNodes.length) { 152 | this.addNodes(addedNodes) 153 | this.addEdges(addedEdges) 154 | 155 | somethingChanged = true 156 | } 157 | 158 | // remove old nodes 159 | this.cy.startBatch() 160 | for (let nodeId of removedNodeIds) { 161 | // edges are removed automatically 162 | this.cy.getElementById(nodeId).remove() 163 | somethingChanged = true 164 | } 165 | this.cy.endBatch() 166 | 167 | return [somethingChanged, addedNodes] 168 | } 169 | 170 | clear () { 171 | if (this.layout !== undefined) { 172 | this.layout.stop() 173 | } 174 | 175 | this.cy.elements().remove() 176 | } 177 | } 178 | 179 | export async function convertFilesToTree (files) { 180 | let allNodeIds = [] 181 | let graphData = { 182 | nodes: [], 183 | edges: [] 184 | } 185 | 186 | // add root node 187 | graphData.nodes.push({ 188 | id: '/', 189 | label: '/', 190 | type: 'directory', 191 | extension: undefined 192 | }) 193 | 194 | // add each file from commit as node 195 | for (let entry of files) { 196 | let fname = entry.path 197 | 198 | let prevRoot = '' 199 | let root = '' 200 | 201 | let parts = fname.split('/') 202 | for (let idx in parts) { 203 | let comp = parts[idx] 204 | 205 | if (comp.length === 0) { 206 | continue 207 | } 208 | 209 | root += '/' + comp 210 | if (allNodeIds.includes(root)) { 211 | prevRoot = root 212 | continue 213 | } 214 | allNodeIds.push(root) 215 | 216 | // parse file extension (undefined if no extension) 217 | let ext = comp.split('.').slice(1).pop() 218 | 219 | // store generated data 220 | graphData.nodes.push({ 221 | id: root, 222 | label: comp, 223 | type: (parseInt(idx) === parts.length - 1) ? 'file' : 'directory', 224 | extension: ext 225 | }) 226 | graphData.edges.push({ 227 | id: undefined, 228 | source: prevRoot === '' ? '/' : prevRoot, 229 | target: root 230 | }) 231 | 232 | prevRoot = root 233 | } 234 | } 235 | 236 | return graphData 237 | } 238 | -------------------------------------------------------------------------------- /src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | GitViz 4 | 5 | 6 |
7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Vuex from 'vuex' 3 | import VuexForms, { Form } from 'vuex-forms' 4 | 5 | import { createVisualization } from './visualization' 6 | 7 | import './assets/css/tailwind.css' 8 | import './assets/css/visualization.css' 9 | 10 | Vue.use(Vuex) 11 | Vue.use(VuexForms) 12 | 13 | const store = new Vuex.Store({ 14 | state: { 15 | inSetupState: true, 16 | config: { 17 | repoUrl: 'https://github.com/kpj/GitViz', 18 | iterationDuration: 1000, 19 | gitBranch: 'master' 20 | }, 21 | commitList: [] 22 | }, 23 | mutations: { 24 | updateConfig: (state, value) => { 25 | state.config = value 26 | }, 27 | finishSetup: state => { 28 | state.inSetupState = false 29 | }, 30 | addCommit: (state, value) => { 31 | state.commitList.push(value) 32 | } 33 | } 34 | }) 35 | 36 | const SetupDialog = { 37 | data: function () { 38 | return { 39 | form: new Form(this, { 40 | repoUrl: this.$store.state.config.repoUrl, 41 | gitBranch: this.$store.state.config.gitBranch, 42 | iterationDuration: this.$store.state.config.iterationDuration 43 | }) 44 | } 45 | }, 46 | template: ` 47 |
48 | 52 | 53 | 54 | 58 | 59 | 60 | 64 | 65 | 66 |
67 | 71 |
72 |
73 | `, 74 | methods: { 75 | submitConfig: function () { 76 | this.$store.commit('updateConfig', { 77 | repoUrl: this.form.repoUrl, 78 | gitBranch: this.form.gitBranch, 79 | iterationDuration: this.form.iterationDuration 80 | }) 81 | this.$store.commit('finishSetup') 82 | 83 | createVisualization(this.$store) 84 | } 85 | } 86 | } 87 | 88 | let formatCommit = commit => { 89 | let date = new Date(commit.committer.timestamp * 1000) 90 | 91 | var year = date.getFullYear() 92 | var month = (date.getMonth() + 1).toString().padStart(2, '0') // lol@+1 93 | var day = date.getDate().toString().padStart(2, '0') 94 | var hours = date.getHours().toString().padStart(2, '0') 95 | var minutes = date.getMinutes().toString().padStart(2, '0') 96 | var seconds = date.getSeconds().toString().padStart(2, '0') 97 | 98 | let dateStr = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}` 99 | 100 | return `${dateStr} -- ${commit.message}` 101 | } 102 | 103 | const CommitView = { 104 | template: ` 105 |
106 | 109 | {{ commit }} 110 | 111 |
112 | `, 113 | computed: { 114 | commitList: { 115 | get () { 116 | return this.$store.state.commitList.map(formatCommit).reverse() 117 | } 118 | } 119 | } 120 | } 121 | 122 | const NetworkView = { 123 | components: { CommitView }, 124 | template: ` 125 |
126 | 127 |
128 | 129 |
130 | ` 131 | } 132 | 133 | const app = new Vue({ 134 | el: '#app', 135 | store, 136 | components: { SetupDialog, NetworkView }, 137 | template: ` 138 |
139 | 140 | 141 |
142 | `, 143 | computed: { 144 | inSetupState: { 145 | get () { 146 | return this.$store.state.inSetupState 147 | } 148 | } 149 | } 150 | }) 151 | -------------------------------------------------------------------------------- /src/language-data.js: -------------------------------------------------------------------------------- 1 | import languageData from './languages.yml' 2 | 3 | export let languageStyles = [] 4 | export let languageStylesDict = {} 5 | 6 | for (const [language, metaData] of Object.entries(languageData)) { 7 | // console.log(language, metaData.color, metaData.extensions) 8 | 9 | if (!('color' in metaData) || !('extensions' in metaData)) { 10 | continue 11 | } 12 | 13 | let curColor = metaData.color 14 | for (let curExtension of metaData.extensions) { 15 | let ext = curExtension.substr(1) // remove leading dot 16 | 17 | // append to selector list 18 | let tmp = { 19 | selector: `node[extension="${ext}"]`, 20 | style: { 21 | backgroundColor: curColor 22 | } 23 | } 24 | languageStyles.push(tmp) 25 | 26 | // add to basic dictionary 27 | languageStylesDict[ext] = curColor 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/languages.yml: -------------------------------------------------------------------------------- 1 | # Defines all Languages known to GitHub. 2 | # 3 | # fs_name - Optional field. Only necessary as a replacement for the sample directory name if the 4 | # language name is not a valid filename under the Windows filesystem (e.g., if it 5 | # contains an asterisk). 6 | # type - Either data, programming, markup, prose, or nil 7 | # aliases - An Array of additional aliases (implicitly 8 | # includes name.downcase) 9 | # ace_mode - A String name of the Ace Mode used for highlighting whenever 10 | # a file is edited. This must match one of the filenames in http://git.io/3XO_Cg. 11 | # Use "text" if a mode does not exist. 12 | # codemirror_mode - A String name of the CodeMirror Mode used for highlighting whenever a file is edited. 13 | # This must match a mode from https://git.io/vi9Fx 14 | # codemirror_mime_type - A String name of the file mime type used for highlighting whenever a file is edited. 15 | # This should match the `mime` associated with the mode from https://git.io/f4SoQ 16 | # wrap - Boolean wrap to enable line wrapping (default: false) 17 | # extensions - An Array of associated extensions (the first one is 18 | # considered the primary extension, the others should be 19 | # listed alphabetically) 20 | # filenames - An Array of filenames commonly associated with the language 21 | # interpreters - An Array of associated interpreters 22 | # searchable - Boolean flag to enable searching (defaults to true) 23 | # language_id - Integer used as a language-name-independent indexed field so that we can rename 24 | # languages in Linguist without reindexing all the code on GitHub. Must not be 25 | # changed for existing languages without the explicit permission of GitHub staff. 26 | # color - CSS hex color to represent the language. Only used if type is "programming" or "markup". 27 | # tm_scope - The TextMate scope that represents this programming 28 | # language. This should match one of the scopes listed in 29 | # the grammars.yml file. Use "none" if there is no grammar 30 | # for this language. 31 | # group - Name of the parent language. Languages in a group are counted 32 | # in the statistics as the parent language. 33 | # 34 | # Any additions or modifications (even trivial) should have corresponding 35 | # test changes in `test/test_blob.rb`. 36 | # 37 | # Please keep this list alphabetized. Capitalization comes before lowercase. 38 | 39 | --- 40 | 1C Enterprise: 41 | type: programming 42 | color: "#814CCC" 43 | extensions: 44 | - ".bsl" 45 | - ".os" 46 | tm_scope: source.bsl 47 | ace_mode: text 48 | language_id: 0 49 | ABAP: 50 | type: programming 51 | color: "#E8274B" 52 | extensions: 53 | - ".abap" 54 | ace_mode: abap 55 | language_id: 1 56 | ABNF: 57 | type: data 58 | ace_mode: text 59 | extensions: 60 | - ".abnf" 61 | tm_scope: source.abnf 62 | language_id: 429 63 | AGS Script: 64 | type: programming 65 | color: "#B9D9FF" 66 | aliases: 67 | - ags 68 | extensions: 69 | - ".asc" 70 | - ".ash" 71 | tm_scope: source.c++ 72 | ace_mode: c_cpp 73 | codemirror_mode: clike 74 | codemirror_mime_type: text/x-c++src 75 | language_id: 2 76 | AMPL: 77 | type: programming 78 | color: "#E6EFBB" 79 | extensions: 80 | - ".ampl" 81 | - ".mod" 82 | tm_scope: source.ampl 83 | ace_mode: text 84 | language_id: 3 85 | ANTLR: 86 | type: programming 87 | color: "#9DC3FF" 88 | extensions: 89 | - ".g4" 90 | ace_mode: text 91 | language_id: 4 92 | API Blueprint: 93 | type: markup 94 | color: "#2ACCA8" 95 | ace_mode: markdown 96 | extensions: 97 | - ".apib" 98 | tm_scope: text.html.markdown.source.gfm.apib 99 | language_id: 5 100 | APL: 101 | type: programming 102 | color: "#5A8164" 103 | extensions: 104 | - ".apl" 105 | - ".dyalog" 106 | interpreters: 107 | - apl 108 | - aplx 109 | - dyalog 110 | tm_scope: source.apl 111 | ace_mode: text 112 | codemirror_mode: apl 113 | codemirror_mime_type: text/apl 114 | language_id: 6 115 | ASN.1: 116 | type: data 117 | extensions: 118 | - ".asn" 119 | - ".asn1" 120 | tm_scope: source.asn 121 | ace_mode: text 122 | codemirror_mode: asn.1 123 | codemirror_mime_type: text/x-ttcn-asn 124 | language_id: 7 125 | ASP: 126 | type: programming 127 | color: "#6a40fd" 128 | tm_scope: text.html.asp 129 | aliases: 130 | - aspx 131 | - aspx-vb 132 | extensions: 133 | - ".asp" 134 | - ".asax" 135 | - ".ascx" 136 | - ".ashx" 137 | - ".asmx" 138 | - ".aspx" 139 | - ".axd" 140 | ace_mode: text 141 | codemirror_mode: htmlembedded 142 | codemirror_mime_type: application/x-aspx 143 | language_id: 8 144 | ATS: 145 | type: programming 146 | color: "#1ac620" 147 | aliases: 148 | - ats2 149 | extensions: 150 | - ".dats" 151 | - ".hats" 152 | - ".sats" 153 | tm_scope: source.ats 154 | ace_mode: ocaml 155 | language_id: 9 156 | ActionScript: 157 | type: programming 158 | tm_scope: source.actionscript.3 159 | color: "#882B0F" 160 | aliases: 161 | - actionscript 3 162 | - actionscript3 163 | - as3 164 | extensions: 165 | - ".as" 166 | ace_mode: actionscript 167 | language_id: 10 168 | Ada: 169 | type: programming 170 | color: "#02f88c" 171 | extensions: 172 | - ".adb" 173 | - ".ada" 174 | - ".ads" 175 | aliases: 176 | - ada95 177 | - ada2005 178 | ace_mode: ada 179 | language_id: 11 180 | Adobe Font Metrics: 181 | type: data 182 | tm_scope: source.afm 183 | extensions: 184 | - ".afm" 185 | aliases: 186 | - acfm 187 | - adobe composite font metrics 188 | - adobe multiple font metrics 189 | - amfm 190 | ace_mode: text 191 | language_id: 147198098 192 | Agda: 193 | type: programming 194 | color: "#315665" 195 | extensions: 196 | - ".agda" 197 | ace_mode: text 198 | language_id: 12 199 | Alloy: 200 | type: programming 201 | color: "#64C800" 202 | extensions: 203 | - ".als" 204 | ace_mode: text 205 | language_id: 13 206 | Alpine Abuild: 207 | type: programming 208 | group: Shell 209 | aliases: 210 | - abuild 211 | - apkbuild 212 | filenames: 213 | - APKBUILD 214 | tm_scope: source.shell 215 | ace_mode: sh 216 | codemirror_mode: shell 217 | codemirror_mime_type: text/x-sh 218 | language_id: 14 219 | Altium Designer: 220 | type: data 221 | aliases: 222 | - altium 223 | extensions: 224 | - ".OutJob" 225 | - ".PcbDoc" 226 | - ".PrjPCB" 227 | - ".SchDoc" 228 | tm_scope: source.ini 229 | ace_mode: ini 230 | language_id: 187772328 231 | AngelScript: 232 | type: programming 233 | color: "#C7D7DC" 234 | extensions: 235 | - ".as" 236 | - ".angelscript" 237 | tm_scope: source.angelscript 238 | ace_mode: text 239 | codemirror_mode: clike 240 | codemirror_mime_type: text/x-c++src 241 | language_id: 389477596 242 | Ant Build System: 243 | type: data 244 | tm_scope: text.xml.ant 245 | filenames: 246 | - ant.xml 247 | - build.xml 248 | ace_mode: xml 249 | codemirror_mode: xml 250 | codemirror_mime_type: application/xml 251 | language_id: 15 252 | ApacheConf: 253 | type: data 254 | aliases: 255 | - aconf 256 | - apache 257 | extensions: 258 | - ".apacheconf" 259 | - ".vhost" 260 | filenames: 261 | - ".htaccess" 262 | - apache2.conf 263 | - httpd.conf 264 | tm_scope: source.apache-config 265 | ace_mode: apache_conf 266 | language_id: 16 267 | Apex: 268 | type: programming 269 | extensions: 270 | - ".cls" 271 | tm_scope: source.java 272 | ace_mode: java 273 | codemirror_mode: clike 274 | codemirror_mime_type: text/x-java 275 | language_id: 17 276 | Apollo Guidance Computer: 277 | type: programming 278 | group: Assembly 279 | extensions: 280 | - ".agc" 281 | tm_scope: source.agc 282 | ace_mode: assembly_x86 283 | language_id: 18 284 | AppleScript: 285 | type: programming 286 | aliases: 287 | - osascript 288 | extensions: 289 | - ".applescript" 290 | - ".scpt" 291 | interpreters: 292 | - osascript 293 | ace_mode: applescript 294 | color: "#101F1F" 295 | language_id: 19 296 | Arc: 297 | type: programming 298 | color: "#aa2afe" 299 | extensions: 300 | - ".arc" 301 | tm_scope: none 302 | ace_mode: text 303 | language_id: 20 304 | AsciiDoc: 305 | type: prose 306 | ace_mode: asciidoc 307 | wrap: true 308 | extensions: 309 | - ".asciidoc" 310 | - ".adoc" 311 | - ".asc" 312 | tm_scope: text.html.asciidoc 313 | language_id: 22 314 | AspectJ: 315 | type: programming 316 | color: "#a957b0" 317 | extensions: 318 | - ".aj" 319 | tm_scope: source.aspectj 320 | ace_mode: text 321 | language_id: 23 322 | Assembly: 323 | type: programming 324 | color: "#6E4C13" 325 | aliases: 326 | - asm 327 | - nasm 328 | extensions: 329 | - ".asm" 330 | - ".a51" 331 | - ".inc" 332 | - ".nasm" 333 | tm_scope: source.assembly 334 | ace_mode: assembly_x86 335 | language_id: 24 336 | Asymptote: 337 | type: programming 338 | color: "#4a0c0c" 339 | extensions: 340 | - ".asy" 341 | interpreters: 342 | - asy 343 | tm_scope: source.c++ 344 | ace_mode: c_cpp 345 | codemirror_mode: clike 346 | codemirror_mime_type: text/x-kotlin 347 | language_id: 591605007 348 | Augeas: 349 | type: programming 350 | extensions: 351 | - ".aug" 352 | tm_scope: none 353 | ace_mode: text 354 | language_id: 25 355 | AutoHotkey: 356 | type: programming 357 | color: "#6594b9" 358 | aliases: 359 | - ahk 360 | extensions: 361 | - ".ahk" 362 | - ".ahkl" 363 | tm_scope: source.ahk 364 | ace_mode: autohotkey 365 | language_id: 26 366 | AutoIt: 367 | type: programming 368 | color: "#1C3552" 369 | aliases: 370 | - au3 371 | - AutoIt3 372 | - AutoItScript 373 | extensions: 374 | - ".au3" 375 | tm_scope: source.autoit 376 | ace_mode: autohotkey 377 | language_id: 27 378 | Awk: 379 | type: programming 380 | extensions: 381 | - ".awk" 382 | - ".auk" 383 | - ".gawk" 384 | - ".mawk" 385 | - ".nawk" 386 | interpreters: 387 | - awk 388 | - gawk 389 | - mawk 390 | - nawk 391 | ace_mode: text 392 | language_id: 28 393 | Ballerina: 394 | type: programming 395 | extensions: 396 | - ".bal" 397 | tm_scope: source.ballerina 398 | ace_mode: text 399 | color: "#FF5000" 400 | language_id: 720859680 401 | Batchfile: 402 | type: programming 403 | aliases: 404 | - bat 405 | - batch 406 | - dosbatch 407 | - winbatch 408 | extensions: 409 | - ".bat" 410 | - ".cmd" 411 | tm_scope: source.batchfile 412 | ace_mode: batchfile 413 | color: "#C1F12E" 414 | language_id: 29 415 | Befunge: 416 | type: programming 417 | extensions: 418 | - ".befunge" 419 | ace_mode: text 420 | language_id: 30 421 | Bison: 422 | type: programming 423 | group: Yacc 424 | tm_scope: source.bison 425 | extensions: 426 | - ".bison" 427 | ace_mode: text 428 | language_id: 31 429 | BitBake: 430 | type: programming 431 | tm_scope: none 432 | extensions: 433 | - ".bb" 434 | ace_mode: text 435 | language_id: 32 436 | Blade: 437 | type: markup 438 | group: HTML 439 | extensions: 440 | - ".blade" 441 | - ".blade.php" 442 | tm_scope: text.html.php.blade 443 | ace_mode: text 444 | language_id: 33 445 | BlitzBasic: 446 | type: programming 447 | aliases: 448 | - b3d 449 | - blitz3d 450 | - blitzplus 451 | - bplus 452 | extensions: 453 | - ".bb" 454 | - ".decls" 455 | tm_scope: source.blitzmax 456 | ace_mode: text 457 | language_id: 34 458 | BlitzMax: 459 | type: programming 460 | color: "#cd6400" 461 | extensions: 462 | - ".bmx" 463 | aliases: 464 | - bmax 465 | ace_mode: text 466 | language_id: 35 467 | Bluespec: 468 | type: programming 469 | extensions: 470 | - ".bsv" 471 | tm_scope: source.bsv 472 | ace_mode: verilog 473 | language_id: 36 474 | Boo: 475 | type: programming 476 | color: "#d4bec1" 477 | extensions: 478 | - ".boo" 479 | ace_mode: text 480 | tm_scope: source.boo 481 | language_id: 37 482 | Brainfuck: 483 | type: programming 484 | color: "#2F2530" 485 | extensions: 486 | - ".b" 487 | - ".bf" 488 | tm_scope: source.bf 489 | ace_mode: text 490 | codemirror_mode: brainfuck 491 | codemirror_mime_type: text/x-brainfuck 492 | language_id: 38 493 | Brightscript: 494 | type: programming 495 | extensions: 496 | - ".brs" 497 | tm_scope: source.brightscript 498 | ace_mode: text 499 | language_id: 39 500 | C: 501 | type: programming 502 | color: "#555555" 503 | extensions: 504 | - ".c" 505 | - ".cats" 506 | - ".h" 507 | - ".idc" 508 | interpreters: 509 | - tcc 510 | ace_mode: c_cpp 511 | codemirror_mode: clike 512 | codemirror_mime_type: text/x-csrc 513 | language_id: 41 514 | C#: 515 | type: programming 516 | ace_mode: csharp 517 | codemirror_mode: clike 518 | codemirror_mime_type: text/x-csharp 519 | tm_scope: source.cs 520 | color: "#178600" 521 | aliases: 522 | - csharp 523 | extensions: 524 | - ".cs" 525 | - ".cake" 526 | - ".csx" 527 | language_id: 42 528 | C++: 529 | type: programming 530 | ace_mode: c_cpp 531 | codemirror_mode: clike 532 | codemirror_mime_type: text/x-c++src 533 | color: "#f34b7d" 534 | aliases: 535 | - cpp 536 | extensions: 537 | - ".cpp" 538 | - ".c++" 539 | - ".cc" 540 | - ".cp" 541 | - ".cxx" 542 | - ".h" 543 | - ".h++" 544 | - ".hh" 545 | - ".hpp" 546 | - ".hxx" 547 | - ".inc" 548 | - ".inl" 549 | - ".ino" 550 | - ".ipp" 551 | - ".re" 552 | - ".tcc" 553 | - ".tpp" 554 | language_id: 43 555 | C-ObjDump: 556 | type: data 557 | extensions: 558 | - ".c-objdump" 559 | tm_scope: objdump.x86asm 560 | ace_mode: assembly_x86 561 | language_id: 44 562 | C2hs Haskell: 563 | type: programming 564 | group: Haskell 565 | aliases: 566 | - c2hs 567 | extensions: 568 | - ".chs" 569 | tm_scope: source.haskell 570 | ace_mode: haskell 571 | codemirror_mode: haskell 572 | codemirror_mime_type: text/x-haskell 573 | language_id: 45 574 | CLIPS: 575 | type: programming 576 | extensions: 577 | - ".clp" 578 | tm_scope: source.clips 579 | ace_mode: text 580 | language_id: 46 581 | CMake: 582 | type: programming 583 | extensions: 584 | - ".cmake" 585 | - ".cmake.in" 586 | filenames: 587 | - CMakeLists.txt 588 | ace_mode: text 589 | codemirror_mode: cmake 590 | codemirror_mime_type: text/x-cmake 591 | language_id: 47 592 | COBOL: 593 | type: programming 594 | extensions: 595 | - ".cob" 596 | - ".cbl" 597 | - ".ccp" 598 | - ".cobol" 599 | - ".cpy" 600 | ace_mode: cobol 601 | codemirror_mode: cobol 602 | codemirror_mime_type: text/x-cobol 603 | language_id: 48 604 | COLLADA: 605 | type: data 606 | extensions: 607 | - ".dae" 608 | tm_scope: text.xml 609 | ace_mode: xml 610 | codemirror_mode: xml 611 | codemirror_mime_type: text/xml 612 | language_id: 49 613 | CSON: 614 | type: data 615 | tm_scope: source.coffee 616 | ace_mode: coffee 617 | codemirror_mode: coffeescript 618 | codemirror_mime_type: text/x-coffeescript 619 | extensions: 620 | - ".cson" 621 | language_id: 424 622 | CSS: 623 | type: markup 624 | tm_scope: source.css 625 | ace_mode: css 626 | codemirror_mode: css 627 | codemirror_mime_type: text/css 628 | color: "#563d7c" 629 | extensions: 630 | - ".css" 631 | language_id: 50 632 | CSV: 633 | type: data 634 | ace_mode: text 635 | tm_scope: none 636 | extensions: 637 | - ".csv" 638 | language_id: 51 639 | CWeb: 640 | type: programming 641 | extensions: 642 | - ".w" 643 | tm_scope: none 644 | ace_mode: text 645 | language_id: 657332628 646 | Cabal Config: 647 | type: data 648 | aliases: 649 | - Cabal 650 | extensions: 651 | - ".cabal" 652 | filenames: 653 | - cabal.config 654 | - cabal.project 655 | ace_mode: haskell 656 | codemirror_mode: haskell 657 | codemirror_mime_type: text/x-haskell 658 | tm_scope: source.cabal 659 | language_id: 677095381 660 | Cap'n Proto: 661 | type: programming 662 | tm_scope: source.capnp 663 | extensions: 664 | - ".capnp" 665 | ace_mode: text 666 | language_id: 52 667 | CartoCSS: 668 | type: programming 669 | aliases: 670 | - Carto 671 | extensions: 672 | - ".mss" 673 | ace_mode: text 674 | tm_scope: source.css.mss 675 | language_id: 53 676 | Ceylon: 677 | type: programming 678 | color: "#dfa535" 679 | extensions: 680 | - ".ceylon" 681 | tm_scope: source.ceylon 682 | ace_mode: text 683 | language_id: 54 684 | Chapel: 685 | type: programming 686 | color: "#8dc63f" 687 | aliases: 688 | - chpl 689 | extensions: 690 | - ".chpl" 691 | ace_mode: text 692 | language_id: 55 693 | Charity: 694 | type: programming 695 | extensions: 696 | - ".ch" 697 | tm_scope: none 698 | ace_mode: text 699 | language_id: 56 700 | ChucK: 701 | type: programming 702 | extensions: 703 | - ".ck" 704 | tm_scope: source.java 705 | ace_mode: java 706 | codemirror_mode: clike 707 | codemirror_mime_type: text/x-java 708 | language_id: 57 709 | Cirru: 710 | type: programming 711 | color: "#ccccff" 712 | ace_mode: cirru 713 | extensions: 714 | - ".cirru" 715 | language_id: 58 716 | Clarion: 717 | type: programming 718 | color: "#db901e" 719 | ace_mode: text 720 | extensions: 721 | - ".clw" 722 | tm_scope: source.clarion 723 | language_id: 59 724 | Clean: 725 | type: programming 726 | color: "#3F85AF" 727 | extensions: 728 | - ".icl" 729 | - ".dcl" 730 | tm_scope: source.clean 731 | ace_mode: text 732 | language_id: 60 733 | Click: 734 | type: programming 735 | color: "#E4E6F3" 736 | extensions: 737 | - ".click" 738 | tm_scope: source.click 739 | ace_mode: text 740 | language_id: 61 741 | Clojure: 742 | type: programming 743 | ace_mode: clojure 744 | codemirror_mode: clojure 745 | codemirror_mime_type: text/x-clojure 746 | color: "#db5855" 747 | extensions: 748 | - ".clj" 749 | - ".boot" 750 | - ".cl2" 751 | - ".cljc" 752 | - ".cljs" 753 | - ".cljs.hl" 754 | - ".cljscm" 755 | - ".cljx" 756 | - ".hic" 757 | filenames: 758 | - riemann.config 759 | language_id: 62 760 | Closure Templates: 761 | type: markup 762 | group: HTML 763 | ace_mode: soy_template 764 | codemirror_mode: soy 765 | codemirror_mime_type: text/x-soy 766 | aliases: 767 | - soy 768 | extensions: 769 | - ".soy" 770 | tm_scope: text.html.soy 771 | language_id: 357046146 772 | Cloud Firestore Security Rules: 773 | type: data 774 | ace_mode: less 775 | codemirror_mode: css 776 | codemirror_mime_type: text/css 777 | tm_scope: source.firestore 778 | filenames: 779 | - firestore.rules 780 | language_id: 407996372 781 | CoNLL-U: 782 | type: data 783 | extensions: 784 | - ".conllu" 785 | - ".conll" 786 | tm_scope: text.conllu 787 | ace_mode: text 788 | aliases: 789 | - CoNLL 790 | - CoNLL-X 791 | language_id: 421026389 792 | CoffeeScript: 793 | type: programming 794 | tm_scope: source.coffee 795 | ace_mode: coffee 796 | codemirror_mode: coffeescript 797 | codemirror_mime_type: text/x-coffeescript 798 | color: "#244776" 799 | aliases: 800 | - coffee 801 | - coffee-script 802 | extensions: 803 | - ".coffee" 804 | - "._coffee" 805 | - ".cake" 806 | - ".cjsx" 807 | - ".iced" 808 | filenames: 809 | - Cakefile 810 | interpreters: 811 | - coffee 812 | language_id: 63 813 | ColdFusion: 814 | type: programming 815 | ace_mode: coldfusion 816 | color: "#ed2cd6" 817 | aliases: 818 | - cfm 819 | - cfml 820 | - coldfusion html 821 | extensions: 822 | - ".cfm" 823 | - ".cfml" 824 | tm_scope: text.html.cfm 825 | language_id: 64 826 | ColdFusion CFC: 827 | type: programming 828 | group: ColdFusion 829 | ace_mode: coldfusion 830 | aliases: 831 | - cfc 832 | extensions: 833 | - ".cfc" 834 | tm_scope: source.cfscript 835 | language_id: 65 836 | Common Lisp: 837 | type: programming 838 | tm_scope: source.lisp 839 | color: "#3fb68b" 840 | aliases: 841 | - lisp 842 | extensions: 843 | - ".lisp" 844 | - ".asd" 845 | - ".cl" 846 | - ".l" 847 | - ".lsp" 848 | - ".ny" 849 | - ".podsl" 850 | - ".sexp" 851 | interpreters: 852 | - lisp 853 | - sbcl 854 | - ccl 855 | - clisp 856 | - ecl 857 | ace_mode: lisp 858 | codemirror_mode: commonlisp 859 | codemirror_mime_type: text/x-common-lisp 860 | language_id: 66 861 | Common Workflow Language: 862 | aliases: 863 | - cwl 864 | type: programming 865 | ace_mode: yaml 866 | codemirror_mode: yaml 867 | codemirror_mime_type: text/x-yaml 868 | extensions: 869 | - ".cwl" 870 | interpreters: 871 | - cwl-runner 872 | color: "#B5314C" 873 | tm_scope: source.cwl 874 | language_id: 988547172 875 | Component Pascal: 876 | type: programming 877 | color: "#B0CE4E" 878 | extensions: 879 | - ".cp" 880 | - ".cps" 881 | tm_scope: source.pascal 882 | aliases: 883 | - delphi 884 | - objectpascal 885 | ace_mode: pascal 886 | codemirror_mode: pascal 887 | codemirror_mime_type: text/x-pascal 888 | language_id: 67 889 | Cool: 890 | type: programming 891 | extensions: 892 | - ".cl" 893 | tm_scope: source.cool 894 | ace_mode: text 895 | language_id: 68 896 | Coq: 897 | type: programming 898 | extensions: 899 | - ".coq" 900 | - ".v" 901 | ace_mode: text 902 | language_id: 69 903 | Cpp-ObjDump: 904 | type: data 905 | extensions: 906 | - ".cppobjdump" 907 | - ".c++-objdump" 908 | - ".c++objdump" 909 | - ".cpp-objdump" 910 | - ".cxx-objdump" 911 | tm_scope: objdump.x86asm 912 | aliases: 913 | - c++-objdump 914 | ace_mode: assembly_x86 915 | language_id: 70 916 | Creole: 917 | type: prose 918 | wrap: true 919 | extensions: 920 | - ".creole" 921 | tm_scope: text.html.creole 922 | ace_mode: text 923 | language_id: 71 924 | Crystal: 925 | type: programming 926 | color: "#000100" 927 | extensions: 928 | - ".cr" 929 | ace_mode: ruby 930 | codemirror_mode: crystal 931 | codemirror_mime_type: text/x-crystal 932 | tm_scope: source.crystal 933 | interpreters: 934 | - crystal 935 | language_id: 72 936 | Csound: 937 | type: programming 938 | aliases: 939 | - csound-orc 940 | extensions: 941 | - ".orc" 942 | - ".udo" 943 | tm_scope: source.csound 944 | ace_mode: csound_orchestra 945 | language_id: 73 946 | Csound Document: 947 | type: programming 948 | aliases: 949 | - csound-csd 950 | extensions: 951 | - ".csd" 952 | tm_scope: source.csound-document 953 | ace_mode: csound_document 954 | language_id: 74 955 | Csound Score: 956 | type: programming 957 | aliases: 958 | - csound-sco 959 | extensions: 960 | - ".sco" 961 | tm_scope: source.csound-score 962 | ace_mode: csound_score 963 | language_id: 75 964 | Cuda: 965 | type: programming 966 | extensions: 967 | - ".cu" 968 | - ".cuh" 969 | tm_scope: source.cuda-c++ 970 | ace_mode: c_cpp 971 | codemirror_mode: clike 972 | codemirror_mime_type: text/x-c++src 973 | color: "#3A4E3A" 974 | language_id: 77 975 | Cycript: 976 | type: programming 977 | extensions: 978 | - ".cy" 979 | tm_scope: source.js 980 | ace_mode: javascript 981 | codemirror_mode: javascript 982 | codemirror_mime_type: text/javascript 983 | language_id: 78 984 | Cython: 985 | type: programming 986 | group: Python 987 | extensions: 988 | - ".pyx" 989 | - ".pxd" 990 | - ".pxi" 991 | aliases: 992 | - pyrex 993 | ace_mode: text 994 | codemirror_mode: python 995 | codemirror_mime_type: text/x-cython 996 | language_id: 79 997 | D: 998 | type: programming 999 | color: "#ba595e" 1000 | extensions: 1001 | - ".d" 1002 | - ".di" 1003 | ace_mode: d 1004 | codemirror_mode: d 1005 | codemirror_mime_type: text/x-d 1006 | language_id: 80 1007 | D-ObjDump: 1008 | type: data 1009 | extensions: 1010 | - ".d-objdump" 1011 | tm_scope: objdump.x86asm 1012 | ace_mode: assembly_x86 1013 | language_id: 81 1014 | DIGITAL Command Language: 1015 | type: programming 1016 | aliases: 1017 | - dcl 1018 | extensions: 1019 | - ".com" 1020 | tm_scope: none 1021 | ace_mode: text 1022 | language_id: 82 1023 | DM: 1024 | type: programming 1025 | color: "#447265" 1026 | extensions: 1027 | - ".dm" 1028 | aliases: 1029 | - byond 1030 | tm_scope: source.dm 1031 | ace_mode: c_cpp 1032 | language_id: 83 1033 | DNS Zone: 1034 | type: data 1035 | extensions: 1036 | - ".zone" 1037 | - ".arpa" 1038 | tm_scope: text.zone_file 1039 | ace_mode: text 1040 | language_id: 84 1041 | DTrace: 1042 | type: programming 1043 | aliases: 1044 | - dtrace-script 1045 | extensions: 1046 | - ".d" 1047 | interpreters: 1048 | - dtrace 1049 | tm_scope: source.c 1050 | ace_mode: c_cpp 1051 | codemirror_mode: clike 1052 | codemirror_mime_type: text/x-csrc 1053 | language_id: 85 1054 | Darcs Patch: 1055 | type: data 1056 | aliases: 1057 | - dpatch 1058 | extensions: 1059 | - ".darcspatch" 1060 | - ".dpatch" 1061 | tm_scope: none 1062 | ace_mode: text 1063 | language_id: 86 1064 | Dart: 1065 | type: programming 1066 | color: "#00B4AB" 1067 | extensions: 1068 | - ".dart" 1069 | interpreters: 1070 | - dart 1071 | ace_mode: dart 1072 | codemirror_mode: dart 1073 | codemirror_mime_type: application/dart 1074 | language_id: 87 1075 | DataWeave: 1076 | type: programming 1077 | color: "#003a52" 1078 | extensions: 1079 | - ".dwl" 1080 | ace_mode: text 1081 | tm_scope: source.data-weave 1082 | language_id: 974514097 1083 | Dhall: 1084 | type: programming 1085 | color: "#dfafff" 1086 | extensions: 1087 | - ".dhall" 1088 | tm_scope: source.haskell 1089 | ace_mode: haskell 1090 | codemirror_mode: haskell 1091 | codemirror_mime_type: text/x-haskell 1092 | language_id: 793969321 1093 | Diff: 1094 | type: data 1095 | extensions: 1096 | - ".diff" 1097 | - ".patch" 1098 | aliases: 1099 | - udiff 1100 | tm_scope: source.diff 1101 | ace_mode: diff 1102 | codemirror_mode: diff 1103 | codemirror_mime_type: text/x-diff 1104 | language_id: 88 1105 | Dockerfile: 1106 | type: programming 1107 | color: "#384d54" 1108 | tm_scope: source.dockerfile 1109 | extensions: 1110 | - ".dockerfile" 1111 | filenames: 1112 | - Dockerfile 1113 | ace_mode: dockerfile 1114 | codemirror_mode: dockerfile 1115 | codemirror_mime_type: text/x-dockerfile 1116 | language_id: 89 1117 | Dogescript: 1118 | type: programming 1119 | color: "#cca760" 1120 | extensions: 1121 | - ".djs" 1122 | tm_scope: none 1123 | ace_mode: text 1124 | language_id: 90 1125 | Dylan: 1126 | type: programming 1127 | color: "#6c616e" 1128 | extensions: 1129 | - ".dylan" 1130 | - ".dyl" 1131 | - ".intr" 1132 | - ".lid" 1133 | ace_mode: text 1134 | codemirror_mode: dylan 1135 | codemirror_mime_type: text/x-dylan 1136 | language_id: 91 1137 | E: 1138 | type: programming 1139 | color: "#ccce35" 1140 | extensions: 1141 | - ".E" 1142 | interpreters: 1143 | - rune 1144 | tm_scope: none 1145 | ace_mode: text 1146 | language_id: 92 1147 | EBNF: 1148 | type: data 1149 | extensions: 1150 | - ".ebnf" 1151 | tm_scope: source.ebnf 1152 | ace_mode: text 1153 | codemirror_mode: ebnf 1154 | codemirror_mime_type: text/x-ebnf 1155 | language_id: 430 1156 | ECL: 1157 | type: programming 1158 | color: "#8a1267" 1159 | extensions: 1160 | - ".ecl" 1161 | - ".eclxml" 1162 | tm_scope: none 1163 | ace_mode: text 1164 | codemirror_mode: ecl 1165 | codemirror_mime_type: text/x-ecl 1166 | language_id: 93 1167 | ECLiPSe: 1168 | type: programming 1169 | group: prolog 1170 | extensions: 1171 | - ".ecl" 1172 | tm_scope: source.prolog.eclipse 1173 | ace_mode: prolog 1174 | language_id: 94 1175 | EJS: 1176 | type: markup 1177 | group: HTML 1178 | extensions: 1179 | - ".ejs" 1180 | tm_scope: text.html.js 1181 | ace_mode: ejs 1182 | language_id: 95 1183 | EML: 1184 | type: data 1185 | extensions: 1186 | - ".eml" 1187 | - ".mbox" 1188 | tm_scope: text.eml.basic 1189 | ace_mode: text 1190 | language_id: 529653389 1191 | EQ: 1192 | type: programming 1193 | color: "#a78649" 1194 | extensions: 1195 | - ".eq" 1196 | tm_scope: source.cs 1197 | ace_mode: csharp 1198 | codemirror_mode: clike 1199 | codemirror_mime_type: text/x-csharp 1200 | language_id: 96 1201 | Eagle: 1202 | type: data 1203 | extensions: 1204 | - ".sch" 1205 | - ".brd" 1206 | tm_scope: text.xml 1207 | ace_mode: xml 1208 | codemirror_mode: xml 1209 | codemirror_mime_type: text/xml 1210 | language_id: 97 1211 | Easybuild: 1212 | type: data 1213 | group: Python 1214 | ace_mode: python 1215 | codemirror_mode: python 1216 | codemirror_mime_type: text/x-python 1217 | tm_scope: source.python 1218 | extensions: 1219 | - ".eb" 1220 | language_id: 342840477 1221 | Ecere Projects: 1222 | type: data 1223 | group: JavaScript 1224 | extensions: 1225 | - ".epj" 1226 | tm_scope: source.json 1227 | ace_mode: json 1228 | codemirror_mode: javascript 1229 | codemirror_mime_type: application/json 1230 | language_id: 98 1231 | EditorConfig: 1232 | type: data 1233 | group: INI 1234 | filenames: 1235 | - ".editorconfig" 1236 | aliases: 1237 | - editor-config 1238 | ace_mode: ini 1239 | codemirror_mode: properties 1240 | codemirror_mime_type: text/x-properties 1241 | tm_scope: source.editorconfig 1242 | language_id: 96139566 1243 | Edje Data Collection: 1244 | type: data 1245 | extensions: 1246 | - ".edc" 1247 | tm_scope: source.json 1248 | ace_mode: json 1249 | codemirror_mode: javascript 1250 | codemirror_mime_type: application/json 1251 | language_id: 342840478 1252 | Eiffel: 1253 | type: programming 1254 | color: "#946d57" 1255 | extensions: 1256 | - ".e" 1257 | ace_mode: eiffel 1258 | codemirror_mode: eiffel 1259 | codemirror_mime_type: text/x-eiffel 1260 | language_id: 99 1261 | Elixir: 1262 | type: programming 1263 | color: "#6e4a7e" 1264 | extensions: 1265 | - ".ex" 1266 | - ".exs" 1267 | ace_mode: elixir 1268 | filenames: 1269 | - mix.lock 1270 | interpreters: 1271 | - elixir 1272 | language_id: 100 1273 | Elm: 1274 | type: programming 1275 | color: "#60B5CC" 1276 | extensions: 1277 | - ".elm" 1278 | tm_scope: source.elm 1279 | ace_mode: elm 1280 | codemirror_mode: elm 1281 | codemirror_mime_type: text/x-elm 1282 | language_id: 101 1283 | Emacs Lisp: 1284 | type: programming 1285 | tm_scope: source.emacs.lisp 1286 | color: "#c065db" 1287 | aliases: 1288 | - elisp 1289 | - emacs 1290 | filenames: 1291 | - ".abbrev_defs" 1292 | - ".emacs" 1293 | - ".emacs.desktop" 1294 | - ".gnus" 1295 | - ".spacemacs" 1296 | - ".viper" 1297 | - Cask 1298 | - Project.ede 1299 | - _emacs 1300 | - abbrev_defs 1301 | extensions: 1302 | - ".el" 1303 | - ".emacs" 1304 | - ".emacs.desktop" 1305 | ace_mode: lisp 1306 | codemirror_mode: commonlisp 1307 | codemirror_mime_type: text/x-common-lisp 1308 | language_id: 102 1309 | EmberScript: 1310 | type: programming 1311 | color: "#FFF4F3" 1312 | extensions: 1313 | - ".em" 1314 | - ".emberscript" 1315 | tm_scope: source.coffee 1316 | ace_mode: coffee 1317 | codemirror_mode: coffeescript 1318 | codemirror_mime_type: text/x-coffeescript 1319 | language_id: 103 1320 | Erlang: 1321 | type: programming 1322 | color: "#B83998" 1323 | extensions: 1324 | - ".erl" 1325 | - ".app.src" 1326 | - ".es" 1327 | - ".escript" 1328 | - ".hrl" 1329 | - ".xrl" 1330 | - ".yrl" 1331 | filenames: 1332 | - Emakefile 1333 | - rebar.config 1334 | - rebar.config.lock 1335 | - rebar.lock 1336 | ace_mode: erlang 1337 | codemirror_mode: erlang 1338 | codemirror_mime_type: text/x-erlang 1339 | interpreters: 1340 | - escript 1341 | language_id: 104 1342 | F#: 1343 | type: programming 1344 | color: "#b845fc" 1345 | aliases: 1346 | - fsharp 1347 | extensions: 1348 | - ".fs" 1349 | - ".fsi" 1350 | - ".fsx" 1351 | tm_scope: source.fsharp 1352 | ace_mode: text 1353 | codemirror_mode: mllike 1354 | codemirror_mime_type: text/x-fsharp 1355 | language_id: 105 1356 | F*: 1357 | fs_name: Fstar 1358 | type: programming 1359 | color: "#572e30" 1360 | aliases: 1361 | - fstar 1362 | extensions: 1363 | - ".fst" 1364 | tm_scope: source.fstar 1365 | ace_mode: text 1366 | language_id: 336943375 1367 | FIGlet Font: 1368 | type: data 1369 | aliases: 1370 | - FIGfont 1371 | extensions: 1372 | - ".flf" 1373 | tm_scope: source.figfont 1374 | ace_mode: text 1375 | language_id: 686129783 1376 | FLUX: 1377 | type: programming 1378 | color: "#88ccff" 1379 | extensions: 1380 | - ".fx" 1381 | - ".flux" 1382 | tm_scope: none 1383 | ace_mode: text 1384 | language_id: 106 1385 | Factor: 1386 | type: programming 1387 | color: "#636746" 1388 | extensions: 1389 | - ".factor" 1390 | filenames: 1391 | - ".factor-boot-rc" 1392 | - ".factor-rc" 1393 | ace_mode: text 1394 | codemirror_mode: factor 1395 | codemirror_mime_type: text/x-factor 1396 | language_id: 108 1397 | Fancy: 1398 | type: programming 1399 | color: "#7b9db4" 1400 | extensions: 1401 | - ".fy" 1402 | - ".fancypack" 1403 | filenames: 1404 | - Fakefile 1405 | ace_mode: text 1406 | language_id: 109 1407 | Fantom: 1408 | type: programming 1409 | color: "#14253c" 1410 | extensions: 1411 | - ".fan" 1412 | tm_scope: source.fan 1413 | ace_mode: text 1414 | language_id: 110 1415 | Filebench WML: 1416 | type: programming 1417 | extensions: 1418 | - ".f" 1419 | tm_scope: none 1420 | ace_mode: text 1421 | language_id: 111 1422 | Filterscript: 1423 | type: programming 1424 | group: RenderScript 1425 | extensions: 1426 | - ".fs" 1427 | tm_scope: none 1428 | ace_mode: text 1429 | language_id: 112 1430 | Formatted: 1431 | type: data 1432 | extensions: 1433 | - ".for" 1434 | - ".eam.fs" 1435 | tm_scope: none 1436 | ace_mode: text 1437 | language_id: 113 1438 | Forth: 1439 | type: programming 1440 | color: "#341708" 1441 | extensions: 1442 | - ".fth" 1443 | - ".4th" 1444 | - ".f" 1445 | - ".for" 1446 | - ".forth" 1447 | - ".fr" 1448 | - ".frt" 1449 | - ".fs" 1450 | ace_mode: forth 1451 | codemirror_mode: forth 1452 | codemirror_mime_type: text/x-forth 1453 | language_id: 114 1454 | Fortran: 1455 | type: programming 1456 | color: "#4d41b1" 1457 | extensions: 1458 | - ".f90" 1459 | - ".f" 1460 | - ".f03" 1461 | - ".f08" 1462 | - ".f77" 1463 | - ".f95" 1464 | - ".for" 1465 | - ".fpp" 1466 | tm_scope: source.fortran.modern 1467 | ace_mode: text 1468 | codemirror_mode: fortran 1469 | codemirror_mime_type: text/x-fortran 1470 | language_id: 107 1471 | FreeMarker: 1472 | type: programming 1473 | color: "#0050b2" 1474 | aliases: 1475 | - ftl 1476 | extensions: 1477 | - ".ftl" 1478 | tm_scope: text.html.ftl 1479 | ace_mode: ftl 1480 | language_id: 115 1481 | Frege: 1482 | type: programming 1483 | color: "#00cafe" 1484 | extensions: 1485 | - ".fr" 1486 | tm_scope: source.haskell 1487 | ace_mode: haskell 1488 | language_id: 116 1489 | G-code: 1490 | type: programming 1491 | color: "#D08CF2" 1492 | extensions: 1493 | - ".g" 1494 | - ".cnc" 1495 | - ".gco" 1496 | - ".gcode" 1497 | tm_scope: source.gcode 1498 | ace_mode: gcode 1499 | language_id: 117 1500 | GAMS: 1501 | type: programming 1502 | extensions: 1503 | - ".gms" 1504 | tm_scope: none 1505 | ace_mode: text 1506 | language_id: 118 1507 | GAP: 1508 | type: programming 1509 | extensions: 1510 | - ".g" 1511 | - ".gap" 1512 | - ".gd" 1513 | - ".gi" 1514 | - ".tst" 1515 | tm_scope: source.gap 1516 | ace_mode: text 1517 | language_id: 119 1518 | GCC Machine Description: 1519 | type: programming 1520 | extensions: 1521 | - ".md" 1522 | tm_scope: source.lisp 1523 | ace_mode: lisp 1524 | codemirror_mode: commonlisp 1525 | codemirror_mime_type: text/x-common-lisp 1526 | language_id: 121 1527 | GDB: 1528 | type: programming 1529 | extensions: 1530 | - ".gdb" 1531 | - ".gdbinit" 1532 | tm_scope: source.gdb 1533 | ace_mode: text 1534 | language_id: 122 1535 | GDScript: 1536 | type: programming 1537 | color: "#355570" 1538 | extensions: 1539 | - ".gd" 1540 | tm_scope: source.gdscript 1541 | ace_mode: text 1542 | language_id: 123 1543 | GLSL: 1544 | type: programming 1545 | extensions: 1546 | - ".glsl" 1547 | - ".fp" 1548 | - ".frag" 1549 | - ".frg" 1550 | - ".fs" 1551 | - ".fsh" 1552 | - ".fshader" 1553 | - ".geo" 1554 | - ".geom" 1555 | - ".glslv" 1556 | - ".gshader" 1557 | - ".shader" 1558 | - ".tesc" 1559 | - ".tese" 1560 | - ".vert" 1561 | - ".vrx" 1562 | - ".vsh" 1563 | - ".vshader" 1564 | ace_mode: glsl 1565 | language_id: 124 1566 | GN: 1567 | type: data 1568 | extensions: 1569 | - ".gn" 1570 | - ".gni" 1571 | interpreters: 1572 | - gn 1573 | filenames: 1574 | - ".gn" 1575 | tm_scope: source.gn 1576 | ace_mode: python 1577 | codemirror_mode: python 1578 | codemirror_mime_type: text/x-python 1579 | language_id: 302957008 1580 | Game Maker Language: 1581 | type: programming 1582 | color: "#71b417" 1583 | extensions: 1584 | - ".gml" 1585 | tm_scope: source.c++ 1586 | ace_mode: c_cpp 1587 | codemirror_mode: clike 1588 | codemirror_mime_type: text/x-c++src 1589 | language_id: 125 1590 | Genie: 1591 | type: programming 1592 | ace_mode: text 1593 | extensions: 1594 | - ".gs" 1595 | color: "#fb855d" 1596 | tm_scope: none 1597 | language_id: 792408528 1598 | Genshi: 1599 | type: programming 1600 | extensions: 1601 | - ".kid" 1602 | tm_scope: text.xml.genshi 1603 | aliases: 1604 | - xml+genshi 1605 | - xml+kid 1606 | ace_mode: xml 1607 | codemirror_mode: xml 1608 | codemirror_mime_type: text/xml 1609 | language_id: 126 1610 | Gentoo Ebuild: 1611 | type: programming 1612 | group: Shell 1613 | extensions: 1614 | - ".ebuild" 1615 | tm_scope: source.shell 1616 | ace_mode: sh 1617 | codemirror_mode: shell 1618 | codemirror_mime_type: text/x-sh 1619 | language_id: 127 1620 | Gentoo Eclass: 1621 | type: programming 1622 | group: Shell 1623 | extensions: 1624 | - ".eclass" 1625 | tm_scope: source.shell 1626 | ace_mode: sh 1627 | codemirror_mode: shell 1628 | codemirror_mime_type: text/x-sh 1629 | language_id: 128 1630 | Gerber Image: 1631 | type: data 1632 | aliases: 1633 | - rs-274x 1634 | extensions: 1635 | - ".gbr" 1636 | - ".gbl" 1637 | - ".gbo" 1638 | - ".gbp" 1639 | - ".gbs" 1640 | - ".gko" 1641 | - ".gml" 1642 | - ".gpb" 1643 | - ".gpt" 1644 | - ".gtl" 1645 | - ".gto" 1646 | - ".gtp" 1647 | - ".gts" 1648 | interpreters: 1649 | - gerbv 1650 | - gerbview 1651 | tm_scope: source.gerber 1652 | ace_mode: text 1653 | language_id: 404627610 1654 | Gettext Catalog: 1655 | type: prose 1656 | searchable: false 1657 | aliases: 1658 | - pot 1659 | extensions: 1660 | - ".po" 1661 | - ".pot" 1662 | tm_scope: source.po 1663 | ace_mode: text 1664 | language_id: 129 1665 | Gherkin: 1666 | type: programming 1667 | extensions: 1668 | - ".feature" 1669 | tm_scope: text.gherkin.feature 1670 | aliases: 1671 | - cucumber 1672 | ace_mode: text 1673 | color: "#5B2063" 1674 | language_id: 76 1675 | Git Attributes: 1676 | type: data 1677 | group: INI 1678 | aliases: 1679 | - gitattributes 1680 | filenames: 1681 | - ".gitattributes" 1682 | tm_scope: source.gitattributes 1683 | ace_mode: gitignore 1684 | codemirror_mode: shell 1685 | codemirror_mime_type: text/x-sh 1686 | language_id: 956324166 1687 | Git Config: 1688 | type: data 1689 | group: INI 1690 | aliases: 1691 | - gitconfig 1692 | - gitmodules 1693 | extensions: 1694 | - ".gitconfig" 1695 | filenames: 1696 | - ".gitconfig" 1697 | - ".gitmodules" 1698 | ace_mode: ini 1699 | codemirror_mode: properties 1700 | codemirror_mime_type: text/x-properties 1701 | tm_scope: source.gitconfig 1702 | language_id: 807968997 1703 | Glyph: 1704 | type: programming 1705 | color: "#c1ac7f" 1706 | extensions: 1707 | - ".glf" 1708 | tm_scope: source.tcl 1709 | ace_mode: tcl 1710 | codemirror_mode: tcl 1711 | codemirror_mime_type: text/x-tcl 1712 | language_id: 130 1713 | Glyph Bitmap Distribution Format: 1714 | type: data 1715 | extensions: 1716 | - ".bdf" 1717 | tm_scope: source.bdf 1718 | ace_mode: text 1719 | language_id: 997665271 1720 | Gnuplot: 1721 | type: programming 1722 | color: "#f0a9f0" 1723 | extensions: 1724 | - ".gp" 1725 | - ".gnu" 1726 | - ".gnuplot" 1727 | - ".plot" 1728 | - ".plt" 1729 | interpreters: 1730 | - gnuplot 1731 | ace_mode: text 1732 | language_id: 131 1733 | Go: 1734 | type: programming 1735 | color: "#00ADD8" 1736 | aliases: 1737 | - golang 1738 | extensions: 1739 | - ".go" 1740 | ace_mode: golang 1741 | codemirror_mode: go 1742 | codemirror_mime_type: text/x-go 1743 | language_id: 132 1744 | Golo: 1745 | type: programming 1746 | color: "#88562A" 1747 | extensions: 1748 | - ".golo" 1749 | tm_scope: source.golo 1750 | ace_mode: text 1751 | language_id: 133 1752 | Gosu: 1753 | type: programming 1754 | color: "#82937f" 1755 | extensions: 1756 | - ".gs" 1757 | - ".gst" 1758 | - ".gsx" 1759 | - ".vark" 1760 | tm_scope: source.gosu.2 1761 | ace_mode: text 1762 | language_id: 134 1763 | Grace: 1764 | type: programming 1765 | extensions: 1766 | - ".grace" 1767 | tm_scope: source.grace 1768 | ace_mode: text 1769 | language_id: 135 1770 | Gradle: 1771 | type: data 1772 | extensions: 1773 | - ".gradle" 1774 | tm_scope: source.groovy.gradle 1775 | ace_mode: text 1776 | language_id: 136 1777 | Grammatical Framework: 1778 | type: programming 1779 | aliases: 1780 | - gf 1781 | extensions: 1782 | - ".gf" 1783 | color: "#79aa7a" 1784 | tm_scope: source.gf 1785 | ace_mode: haskell 1786 | codemirror_mode: haskell 1787 | codemirror_mime_type: text/x-haskell 1788 | language_id: 137 1789 | Graph Modeling Language: 1790 | type: data 1791 | extensions: 1792 | - ".gml" 1793 | tm_scope: none 1794 | ace_mode: text 1795 | language_id: 138 1796 | GraphQL: 1797 | type: data 1798 | extensions: 1799 | - ".graphql" 1800 | - ".gql" 1801 | - ".graphqls" 1802 | tm_scope: source.graphql 1803 | ace_mode: text 1804 | language_id: 139 1805 | Graphviz (DOT): 1806 | type: data 1807 | tm_scope: source.dot 1808 | extensions: 1809 | - ".dot" 1810 | - ".gv" 1811 | ace_mode: text 1812 | language_id: 140 1813 | Groovy: 1814 | type: programming 1815 | ace_mode: groovy 1816 | codemirror_mode: groovy 1817 | codemirror_mime_type: text/x-groovy 1818 | color: "#e69f56" 1819 | extensions: 1820 | - ".groovy" 1821 | - ".grt" 1822 | - ".gtpl" 1823 | - ".gvy" 1824 | interpreters: 1825 | - groovy 1826 | filenames: 1827 | - Jenkinsfile 1828 | language_id: 142 1829 | Groovy Server Pages: 1830 | type: programming 1831 | group: Groovy 1832 | aliases: 1833 | - gsp 1834 | - java server page 1835 | extensions: 1836 | - ".gsp" 1837 | tm_scope: text.html.jsp 1838 | ace_mode: jsp 1839 | codemirror_mode: htmlembedded 1840 | codemirror_mime_type: application/x-jsp 1841 | language_id: 143 1842 | HAProxy: 1843 | type: data 1844 | extensions: 1845 | - ".cfg" 1846 | filenames: 1847 | - haproxy.cfg 1848 | tm_scope: source.haproxy-config 1849 | ace_mode: text 1850 | language_id: 366607477 1851 | HCL: 1852 | type: programming 1853 | extensions: 1854 | - ".hcl" 1855 | - ".tf" 1856 | - ".tfvars" 1857 | - ".workflow" 1858 | aliases: 1859 | - terraform 1860 | ace_mode: ruby 1861 | codemirror_mode: ruby 1862 | codemirror_mime_type: text/x-ruby 1863 | tm_scope: source.terraform 1864 | language_id: 144 1865 | HLSL: 1866 | type: programming 1867 | extensions: 1868 | - ".hlsl" 1869 | - ".cginc" 1870 | - ".fx" 1871 | - ".fxh" 1872 | - ".hlsli" 1873 | ace_mode: text 1874 | tm_scope: source.hlsl 1875 | language_id: 145 1876 | HTML: 1877 | type: markup 1878 | tm_scope: text.html.basic 1879 | ace_mode: html 1880 | codemirror_mode: htmlmixed 1881 | codemirror_mime_type: text/html 1882 | color: "#e34c26" 1883 | aliases: 1884 | - xhtml 1885 | extensions: 1886 | - ".html" 1887 | - ".htm" 1888 | - ".html.hl" 1889 | - ".inc" 1890 | - ".st" 1891 | - ".xht" 1892 | - ".xhtml" 1893 | language_id: 146 1894 | HTML+Django: 1895 | type: markup 1896 | tm_scope: text.html.django 1897 | group: HTML 1898 | extensions: 1899 | - ".jinja" 1900 | - ".jinja2" 1901 | - ".mustache" 1902 | - ".njk" 1903 | aliases: 1904 | - django 1905 | - html+django/jinja 1906 | - html+jinja 1907 | - htmldjango 1908 | - njk 1909 | - nunjucks 1910 | ace_mode: django 1911 | codemirror_mode: django 1912 | codemirror_mime_type: text/x-django 1913 | language_id: 147 1914 | HTML+ECR: 1915 | type: markup 1916 | tm_scope: text.html.ecr 1917 | group: HTML 1918 | aliases: 1919 | - ecr 1920 | extensions: 1921 | - ".ecr" 1922 | ace_mode: text 1923 | codemirror_mode: htmlmixed 1924 | codemirror_mime_type: text/html 1925 | language_id: 148 1926 | HTML+EEX: 1927 | type: markup 1928 | tm_scope: text.html.elixir 1929 | group: HTML 1930 | aliases: 1931 | - eex 1932 | extensions: 1933 | - ".eex" 1934 | ace_mode: text 1935 | codemirror_mode: htmlmixed 1936 | codemirror_mime_type: text/html 1937 | language_id: 149 1938 | HTML+ERB: 1939 | type: markup 1940 | tm_scope: text.html.erb 1941 | group: HTML 1942 | aliases: 1943 | - erb 1944 | extensions: 1945 | - ".erb" 1946 | - ".erb.deface" 1947 | ace_mode: text 1948 | codemirror_mode: htmlembedded 1949 | codemirror_mime_type: application/x-erb 1950 | language_id: 150 1951 | HTML+PHP: 1952 | type: markup 1953 | tm_scope: text.html.php 1954 | group: HTML 1955 | extensions: 1956 | - ".phtml" 1957 | ace_mode: php 1958 | codemirror_mode: php 1959 | codemirror_mime_type: application/x-httpd-php 1960 | language_id: 151 1961 | HTML+Razor: 1962 | type: markup 1963 | tm_scope: text.html.cshtml 1964 | group: HTML 1965 | aliases: 1966 | - razor 1967 | extensions: 1968 | - ".cshtml" 1969 | - ".razor" 1970 | ace_mode: razor 1971 | codemirror_mode: htmlmixed 1972 | codemirror_mime_type: text/html 1973 | language_id: 479039817 1974 | HTTP: 1975 | type: data 1976 | extensions: 1977 | - ".http" 1978 | tm_scope: source.httpspec 1979 | ace_mode: text 1980 | codemirror_mode: http 1981 | codemirror_mime_type: message/http 1982 | language_id: 152 1983 | HXML: 1984 | type: data 1985 | ace_mode: text 1986 | extensions: 1987 | - ".hxml" 1988 | tm_scope: source.hxml 1989 | language_id: 786683730 1990 | Hack: 1991 | type: programming 1992 | ace_mode: php 1993 | codemirror_mode: php 1994 | codemirror_mime_type: application/x-httpd-php 1995 | extensions: 1996 | - ".hh" 1997 | - ".php" 1998 | tm_scope: source.hack 1999 | color: "#878787" 2000 | language_id: 153 2001 | Haml: 2002 | group: HTML 2003 | type: markup 2004 | extensions: 2005 | - ".haml" 2006 | - ".haml.deface" 2007 | ace_mode: haml 2008 | codemirror_mode: haml 2009 | codemirror_mime_type: text/x-haml 2010 | language_id: 154 2011 | Handlebars: 2012 | type: markup 2013 | group: HTML 2014 | aliases: 2015 | - hbs 2016 | - htmlbars 2017 | extensions: 2018 | - ".handlebars" 2019 | - ".hbs" 2020 | tm_scope: text.html.handlebars 2021 | ace_mode: handlebars 2022 | language_id: 155 2023 | Harbour: 2024 | type: programming 2025 | color: "#0e60e3" 2026 | extensions: 2027 | - ".hb" 2028 | tm_scope: source.harbour 2029 | ace_mode: text 2030 | language_id: 156 2031 | Haskell: 2032 | type: programming 2033 | color: "#5e5086" 2034 | extensions: 2035 | - ".hs" 2036 | - ".hsc" 2037 | interpreters: 2038 | - runhaskell 2039 | ace_mode: haskell 2040 | codemirror_mode: haskell 2041 | codemirror_mime_type: text/x-haskell 2042 | language_id: 157 2043 | Haxe: 2044 | type: programming 2045 | ace_mode: haxe 2046 | codemirror_mode: haxe 2047 | codemirror_mime_type: text/x-haxe 2048 | color: "#df7900" 2049 | extensions: 2050 | - ".hx" 2051 | - ".hxsl" 2052 | tm_scope: source.hx 2053 | language_id: 158 2054 | HiveQL: 2055 | type: programming 2056 | extensions: 2057 | - ".q" 2058 | color: "#dce200" 2059 | tm_scope: source.hql 2060 | ace_mode: sql 2061 | language_id: 931814087 2062 | HolyC: 2063 | type: programming 2064 | color: "#ffefaf" 2065 | extensions: 2066 | - ".hc" 2067 | tm_scope: source.hc 2068 | ace_mode: c_cpp 2069 | codemirror_mode: clike 2070 | codemirror_mime_type: text/x-csrc 2071 | language_id: 928121743 2072 | Hy: 2073 | type: programming 2074 | ace_mode: text 2075 | color: "#7790B2" 2076 | extensions: 2077 | - ".hy" 2078 | interpreters: 2079 | - hy 2080 | aliases: 2081 | - hylang 2082 | tm_scope: source.hy 2083 | language_id: 159 2084 | HyPhy: 2085 | type: programming 2086 | ace_mode: text 2087 | extensions: 2088 | - ".bf" 2089 | tm_scope: none 2090 | language_id: 160 2091 | IDL: 2092 | type: programming 2093 | color: "#a3522f" 2094 | extensions: 2095 | - ".pro" 2096 | - ".dlm" 2097 | ace_mode: text 2098 | codemirror_mode: idl 2099 | codemirror_mime_type: text/x-idl 2100 | language_id: 161 2101 | IGOR Pro: 2102 | type: programming 2103 | extensions: 2104 | - ".ipf" 2105 | aliases: 2106 | - igor 2107 | - igorpro 2108 | tm_scope: none 2109 | ace_mode: text 2110 | language_id: 162 2111 | INI: 2112 | type: data 2113 | extensions: 2114 | - ".ini" 2115 | - ".cfg" 2116 | - ".lektorproject" 2117 | - ".prefs" 2118 | - ".pro" 2119 | - ".properties" 2120 | filenames: 2121 | - buildozer.spec 2122 | tm_scope: source.ini 2123 | aliases: 2124 | - dosini 2125 | ace_mode: ini 2126 | codemirror_mode: properties 2127 | codemirror_mime_type: text/x-properties 2128 | language_id: 163 2129 | IRC log: 2130 | type: data 2131 | aliases: 2132 | - irc 2133 | - irc logs 2134 | extensions: 2135 | - ".irclog" 2136 | - ".weechatlog" 2137 | tm_scope: none 2138 | ace_mode: text 2139 | codemirror_mode: mirc 2140 | codemirror_mime_type: text/mirc 2141 | language_id: 164 2142 | Idris: 2143 | type: programming 2144 | color: "#b30000" 2145 | extensions: 2146 | - ".idr" 2147 | - ".lidr" 2148 | ace_mode: text 2149 | tm_scope: source.idris 2150 | language_id: 165 2151 | Ignore List: 2152 | type: data 2153 | group: INI 2154 | aliases: 2155 | - ignore 2156 | - gitignore 2157 | - git-ignore 2158 | extensions: 2159 | - ".gitignore" 2160 | filenames: 2161 | - ".atomignore" 2162 | - ".babelignore" 2163 | - ".bzrignore" 2164 | - ".coffeelintignore" 2165 | - ".cvsignore" 2166 | - ".dockerignore" 2167 | - ".eslintignore" 2168 | - ".gitignore" 2169 | - ".nodemonignore" 2170 | - ".npmignore" 2171 | - ".prettierignore" 2172 | - ".stylelintignore" 2173 | - ".vscodeignore" 2174 | - gitignore-global 2175 | - gitignore_global 2176 | ace_mode: gitignore 2177 | tm_scope: source.gitignore 2178 | codemirror_mode: shell 2179 | codemirror_mime_type: text/x-sh 2180 | language_id: 74444240 2181 | Inform 7: 2182 | type: programming 2183 | wrap: true 2184 | extensions: 2185 | - ".ni" 2186 | - ".i7x" 2187 | tm_scope: source.inform7 2188 | aliases: 2189 | - i7 2190 | - inform7 2191 | ace_mode: text 2192 | language_id: 166 2193 | Inno Setup: 2194 | type: programming 2195 | extensions: 2196 | - ".iss" 2197 | tm_scope: none 2198 | ace_mode: text 2199 | language_id: 167 2200 | Io: 2201 | type: programming 2202 | color: "#a9188d" 2203 | extensions: 2204 | - ".io" 2205 | interpreters: 2206 | - io 2207 | ace_mode: io 2208 | language_id: 168 2209 | Ioke: 2210 | type: programming 2211 | color: "#078193" 2212 | extensions: 2213 | - ".ik" 2214 | interpreters: 2215 | - ioke 2216 | ace_mode: text 2217 | language_id: 169 2218 | Isabelle: 2219 | type: programming 2220 | color: "#FEFE00" 2221 | extensions: 2222 | - ".thy" 2223 | tm_scope: source.isabelle.theory 2224 | ace_mode: text 2225 | language_id: 170 2226 | Isabelle ROOT: 2227 | type: programming 2228 | group: Isabelle 2229 | filenames: 2230 | - ROOT 2231 | tm_scope: source.isabelle.root 2232 | ace_mode: text 2233 | language_id: 171 2234 | J: 2235 | type: programming 2236 | color: "#9EEDFF" 2237 | extensions: 2238 | - ".ijs" 2239 | interpreters: 2240 | - jconsole 2241 | tm_scope: source.j 2242 | ace_mode: text 2243 | language_id: 172 2244 | JFlex: 2245 | type: programming 2246 | group: Lex 2247 | extensions: 2248 | - ".flex" 2249 | - ".jflex" 2250 | tm_scope: source.jflex 2251 | ace_mode: text 2252 | language_id: 173 2253 | JSON: 2254 | type: data 2255 | tm_scope: source.json 2256 | ace_mode: json 2257 | codemirror_mode: javascript 2258 | codemirror_mime_type: application/json 2259 | searchable: false 2260 | extensions: 2261 | - ".json" 2262 | - ".avsc" 2263 | - ".geojson" 2264 | - ".gltf" 2265 | - ".har" 2266 | - ".ice" 2267 | - ".JSON-tmLanguage" 2268 | - ".jsonl" 2269 | - ".mcmeta" 2270 | - ".tfstate" 2271 | - ".tfstate.backup" 2272 | - ".topojson" 2273 | - ".webapp" 2274 | - ".webmanifest" 2275 | - ".yy" 2276 | - ".yyp" 2277 | filenames: 2278 | - ".arcconfig" 2279 | - ".htmlhintrc" 2280 | - ".tern-config" 2281 | - ".tern-project" 2282 | - ".watchmanconfig" 2283 | - composer.lock 2284 | - mcmod.info 2285 | language_id: 174 2286 | JSON with Comments: 2287 | type: data 2288 | group: JSON 2289 | tm_scope: source.js 2290 | ace_mode: javascript 2291 | codemirror_mode: javascript 2292 | codemirror_mime_type: text/javascript 2293 | aliases: 2294 | - jsonc 2295 | extensions: 2296 | - ".sublime-build" 2297 | - ".sublime-commands" 2298 | - ".sublime-completions" 2299 | - ".sublime-keymap" 2300 | - ".sublime-macro" 2301 | - ".sublime-menu" 2302 | - ".sublime-mousemap" 2303 | - ".sublime-project" 2304 | - ".sublime-settings" 2305 | - ".sublime-theme" 2306 | - ".sublime-workspace" 2307 | - ".sublime_metrics" 2308 | - ".sublime_session" 2309 | filenames: 2310 | - ".babelrc" 2311 | - ".eslintrc.json" 2312 | - ".jscsrc" 2313 | - ".jshintrc" 2314 | - ".jslintrc" 2315 | - jsconfig.json 2316 | - language-configuration.json 2317 | - tsconfig.json 2318 | language_id: 423 2319 | JSON5: 2320 | type: data 2321 | extensions: 2322 | - ".json5" 2323 | tm_scope: source.js 2324 | ace_mode: javascript 2325 | codemirror_mode: javascript 2326 | codemirror_mime_type: application/json 2327 | language_id: 175 2328 | JSONLD: 2329 | type: data 2330 | extensions: 2331 | - ".jsonld" 2332 | tm_scope: source.js 2333 | ace_mode: javascript 2334 | codemirror_mode: javascript 2335 | codemirror_mime_type: application/json 2336 | language_id: 176 2337 | JSONiq: 2338 | color: "#40d47e" 2339 | type: programming 2340 | ace_mode: jsoniq 2341 | codemirror_mode: javascript 2342 | codemirror_mime_type: application/json 2343 | extensions: 2344 | - ".jq" 2345 | tm_scope: source.jq 2346 | language_id: 177 2347 | JSX: 2348 | type: programming 2349 | group: JavaScript 2350 | extensions: 2351 | - ".jsx" 2352 | tm_scope: source.js.jsx 2353 | ace_mode: javascript 2354 | codemirror_mode: jsx 2355 | codemirror_mime_type: text/jsx 2356 | language_id: 178 2357 | Jasmin: 2358 | type: programming 2359 | ace_mode: java 2360 | extensions: 2361 | - ".j" 2362 | tm_scope: source.jasmin 2363 | language_id: 180 2364 | Java: 2365 | type: programming 2366 | ace_mode: java 2367 | codemirror_mode: clike 2368 | codemirror_mime_type: text/x-java 2369 | color: "#b07219" 2370 | extensions: 2371 | - ".java" 2372 | language_id: 181 2373 | Java Properties: 2374 | type: data 2375 | extensions: 2376 | - ".properties" 2377 | tm_scope: source.java-properties 2378 | ace_mode: properties 2379 | codemirror_mode: properties 2380 | codemirror_mime_type: text/x-properties 2381 | language_id: 519377561 2382 | Java Server Pages: 2383 | type: programming 2384 | group: Java 2385 | aliases: 2386 | - jsp 2387 | extensions: 2388 | - ".jsp" 2389 | tm_scope: text.html.jsp 2390 | ace_mode: jsp 2391 | codemirror_mode: htmlembedded 2392 | codemirror_mime_type: application/x-jsp 2393 | language_id: 182 2394 | JavaScript: 2395 | type: programming 2396 | tm_scope: source.js 2397 | ace_mode: javascript 2398 | codemirror_mode: javascript 2399 | codemirror_mime_type: text/javascript 2400 | color: "#f1e05a" 2401 | aliases: 2402 | - js 2403 | - node 2404 | extensions: 2405 | - ".js" 2406 | - "._js" 2407 | - ".bones" 2408 | - ".es" 2409 | - ".es6" 2410 | - ".frag" 2411 | - ".gs" 2412 | - ".jake" 2413 | - ".jsb" 2414 | - ".jscad" 2415 | - ".jsfl" 2416 | - ".jsm" 2417 | - ".jss" 2418 | - ".mjs" 2419 | - ".njs" 2420 | - ".pac" 2421 | - ".sjs" 2422 | - ".ssjs" 2423 | - ".xsjs" 2424 | - ".xsjslib" 2425 | filenames: 2426 | - Jakefile 2427 | interpreters: 2428 | - chakra 2429 | - d8 2430 | - js 2431 | - node 2432 | - rhino 2433 | - v8 2434 | - v8-shell 2435 | language_id: 183 2436 | JavaScript+ERB: 2437 | type: programming 2438 | tm_scope: source.js 2439 | group: JavaScript 2440 | extensions: 2441 | - ".js.erb" 2442 | ace_mode: javascript 2443 | codemirror_mode: javascript 2444 | codemirror_mime_type: application/javascript 2445 | language_id: 914318960 2446 | Jison: 2447 | type: programming 2448 | group: Yacc 2449 | extensions: 2450 | - ".jison" 2451 | tm_scope: source.jison 2452 | ace_mode: text 2453 | language_id: 284531423 2454 | Jison Lex: 2455 | type: programming 2456 | group: Lex 2457 | extensions: 2458 | - ".jisonlex" 2459 | tm_scope: source.jisonlex 2460 | ace_mode: text 2461 | language_id: 406395330 2462 | Jolie: 2463 | type: programming 2464 | extensions: 2465 | - ".ol" 2466 | - ".iol" 2467 | interpreters: 2468 | - jolie 2469 | color: "#843179" 2470 | ace_mode: text 2471 | tm_scope: source.jolie 2472 | language_id: 998078858 2473 | Jsonnet: 2474 | color: "#0064bd" 2475 | type: programming 2476 | ace_mode: text 2477 | extensions: 2478 | - ".jsonnet" 2479 | - ".libsonnet" 2480 | tm_scope: source.jsonnet 2481 | language_id: 664885656 2482 | Julia: 2483 | type: programming 2484 | extensions: 2485 | - ".jl" 2486 | interpreters: 2487 | - julia 2488 | color: "#a270ba" 2489 | ace_mode: julia 2490 | codemirror_mode: julia 2491 | codemirror_mime_type: text/x-julia 2492 | language_id: 184 2493 | Jupyter Notebook: 2494 | type: markup 2495 | ace_mode: json 2496 | codemirror_mode: javascript 2497 | codemirror_mime_type: application/json 2498 | tm_scope: source.json 2499 | color: "#DA5B0B" 2500 | extensions: 2501 | - ".ipynb" 2502 | filenames: 2503 | - Notebook 2504 | aliases: 2505 | - IPython Notebook 2506 | language_id: 185 2507 | KRL: 2508 | type: programming 2509 | color: "#28430A" 2510 | extensions: 2511 | - ".krl" 2512 | tm_scope: none 2513 | ace_mode: text 2514 | language_id: 186 2515 | KiCad Layout: 2516 | type: data 2517 | aliases: 2518 | - pcbnew 2519 | extensions: 2520 | - ".kicad_pcb" 2521 | - ".kicad_mod" 2522 | - ".kicad_wks" 2523 | filenames: 2524 | - fp-lib-table 2525 | tm_scope: source.pcb.sexp 2526 | ace_mode: lisp 2527 | codemirror_mode: commonlisp 2528 | codemirror_mime_type: text/x-common-lisp 2529 | language_id: 187 2530 | KiCad Legacy Layout: 2531 | type: data 2532 | extensions: 2533 | - ".brd" 2534 | tm_scope: source.pcb.board 2535 | ace_mode: text 2536 | language_id: 140848857 2537 | KiCad Schematic: 2538 | type: data 2539 | aliases: 2540 | - eeschema schematic 2541 | extensions: 2542 | - ".sch" 2543 | tm_scope: source.pcb.schematic 2544 | ace_mode: text 2545 | language_id: 622447435 2546 | Kit: 2547 | type: markup 2548 | ace_mode: html 2549 | codemirror_mode: htmlmixed 2550 | codemirror_mime_type: text/html 2551 | extensions: 2552 | - ".kit" 2553 | tm_scope: text.html.basic 2554 | language_id: 188 2555 | Kotlin: 2556 | type: programming 2557 | color: "#F18E33" 2558 | extensions: 2559 | - ".kt" 2560 | - ".ktm" 2561 | - ".kts" 2562 | tm_scope: source.kotlin 2563 | ace_mode: text 2564 | codemirror_mode: clike 2565 | codemirror_mime_type: text/x-kotlin 2566 | language_id: 189 2567 | LFE: 2568 | type: programming 2569 | color: "#4C3023" 2570 | extensions: 2571 | - ".lfe" 2572 | tm_scope: source.lisp 2573 | ace_mode: lisp 2574 | codemirror_mode: commonlisp 2575 | codemirror_mime_type: text/x-common-lisp 2576 | language_id: 190 2577 | LLVM: 2578 | type: programming 2579 | extensions: 2580 | - ".ll" 2581 | ace_mode: text 2582 | color: "#185619" 2583 | language_id: 191 2584 | LOLCODE: 2585 | type: programming 2586 | extensions: 2587 | - ".lol" 2588 | color: "#cc9900" 2589 | tm_scope: none 2590 | ace_mode: text 2591 | language_id: 192 2592 | LSL: 2593 | type: programming 2594 | ace_mode: lsl 2595 | extensions: 2596 | - ".lsl" 2597 | - ".lslp" 2598 | interpreters: 2599 | - lsl 2600 | color: "#3d9970" 2601 | language_id: 193 2602 | LTspice Symbol: 2603 | type: data 2604 | extensions: 2605 | - ".asy" 2606 | tm_scope: source.ltspice.symbol 2607 | ace_mode: text 2608 | codemirror_mode: spreadsheet 2609 | codemirror_mime_type: text/x-spreadsheet 2610 | language_id: 1013566805 2611 | LabVIEW: 2612 | type: programming 2613 | extensions: 2614 | - ".lvproj" 2615 | tm_scope: text.xml 2616 | ace_mode: xml 2617 | codemirror_mode: xml 2618 | codemirror_mime_type: text/xml 2619 | language_id: 194 2620 | Lasso: 2621 | type: programming 2622 | color: "#999999" 2623 | extensions: 2624 | - ".lasso" 2625 | - ".las" 2626 | - ".lasso8" 2627 | - ".lasso9" 2628 | - ".ldml" 2629 | tm_scope: file.lasso 2630 | aliases: 2631 | - lassoscript 2632 | ace_mode: text 2633 | language_id: 195 2634 | Latte: 2635 | type: markup 2636 | group: HTML 2637 | extensions: 2638 | - ".latte" 2639 | tm_scope: text.html.smarty 2640 | ace_mode: smarty 2641 | codemirror_mode: smarty 2642 | codemirror_mime_type: text/x-smarty 2643 | language_id: 196 2644 | Lean: 2645 | type: programming 2646 | extensions: 2647 | - ".lean" 2648 | - ".hlean" 2649 | ace_mode: text 2650 | language_id: 197 2651 | Less: 2652 | type: markup 2653 | group: CSS 2654 | extensions: 2655 | - ".less" 2656 | tm_scope: source.css.less 2657 | ace_mode: less 2658 | codemirror_mode: css 2659 | codemirror_mime_type: text/css 2660 | language_id: 198 2661 | Lex: 2662 | type: programming 2663 | color: "#DBCA00" 2664 | aliases: 2665 | - flex 2666 | extensions: 2667 | - ".l" 2668 | - ".lex" 2669 | tm_scope: none 2670 | ace_mode: text 2671 | language_id: 199 2672 | LilyPond: 2673 | type: programming 2674 | extensions: 2675 | - ".ly" 2676 | - ".ily" 2677 | ace_mode: text 2678 | language_id: 200 2679 | Limbo: 2680 | type: programming 2681 | extensions: 2682 | - ".b" 2683 | - ".m" 2684 | tm_scope: none 2685 | ace_mode: text 2686 | language_id: 201 2687 | Linker Script: 2688 | type: data 2689 | extensions: 2690 | - ".ld" 2691 | - ".lds" 2692 | - ".x" 2693 | filenames: 2694 | - ld.script 2695 | tm_scope: none 2696 | ace_mode: text 2697 | language_id: 202 2698 | Linux Kernel Module: 2699 | type: data 2700 | extensions: 2701 | - ".mod" 2702 | tm_scope: none 2703 | ace_mode: text 2704 | language_id: 203 2705 | Liquid: 2706 | type: markup 2707 | extensions: 2708 | - ".liquid" 2709 | tm_scope: text.html.liquid 2710 | ace_mode: liquid 2711 | language_id: 204 2712 | Literate Agda: 2713 | type: programming 2714 | group: Agda 2715 | extensions: 2716 | - ".lagda" 2717 | tm_scope: none 2718 | ace_mode: text 2719 | language_id: 205 2720 | Literate CoffeeScript: 2721 | type: programming 2722 | tm_scope: source.litcoffee 2723 | group: CoffeeScript 2724 | ace_mode: text 2725 | wrap: true 2726 | aliases: 2727 | - litcoffee 2728 | extensions: 2729 | - ".litcoffee" 2730 | language_id: 206 2731 | Literate Haskell: 2732 | type: programming 2733 | group: Haskell 2734 | aliases: 2735 | - lhaskell 2736 | - lhs 2737 | extensions: 2738 | - ".lhs" 2739 | tm_scope: text.tex.latex.haskell 2740 | ace_mode: text 2741 | codemirror_mode: haskell-literate 2742 | codemirror_mime_type: text/x-literate-haskell 2743 | language_id: 207 2744 | LiveScript: 2745 | type: programming 2746 | color: "#499886" 2747 | aliases: 2748 | - live-script 2749 | - ls 2750 | extensions: 2751 | - ".ls" 2752 | - "._ls" 2753 | filenames: 2754 | - Slakefile 2755 | ace_mode: livescript 2756 | codemirror_mode: livescript 2757 | codemirror_mime_type: text/x-livescript 2758 | language_id: 208 2759 | Logos: 2760 | type: programming 2761 | extensions: 2762 | - ".xm" 2763 | - ".x" 2764 | - ".xi" 2765 | ace_mode: text 2766 | tm_scope: source.logos 2767 | language_id: 209 2768 | Logtalk: 2769 | type: programming 2770 | extensions: 2771 | - ".lgt" 2772 | - ".logtalk" 2773 | ace_mode: text 2774 | language_id: 210 2775 | LookML: 2776 | type: programming 2777 | ace_mode: yaml 2778 | codemirror_mode: yaml 2779 | codemirror_mime_type: text/x-yaml 2780 | color: "#652B81" 2781 | extensions: 2782 | - ".lookml" 2783 | - ".model.lkml" 2784 | - ".view.lkml" 2785 | tm_scope: source.yaml 2786 | language_id: 211 2787 | LoomScript: 2788 | type: programming 2789 | extensions: 2790 | - ".ls" 2791 | tm_scope: source.loomscript 2792 | ace_mode: text 2793 | language_id: 212 2794 | Lua: 2795 | type: programming 2796 | ace_mode: lua 2797 | codemirror_mode: lua 2798 | codemirror_mime_type: text/x-lua 2799 | color: "#000080" 2800 | extensions: 2801 | - ".lua" 2802 | - ".fcgi" 2803 | - ".nse" 2804 | - ".p8" 2805 | - ".pd_lua" 2806 | - ".rbxs" 2807 | - ".wlua" 2808 | interpreters: 2809 | - lua 2810 | language_id: 213 2811 | M: 2812 | type: programming 2813 | aliases: 2814 | - mumps 2815 | extensions: 2816 | - ".mumps" 2817 | - ".m" 2818 | ace_mode: text 2819 | codemirror_mode: mumps 2820 | codemirror_mime_type: text/x-mumps 2821 | language_id: 214 2822 | tm_scope: none 2823 | M4: 2824 | type: programming 2825 | extensions: 2826 | - ".m4" 2827 | tm_scope: none 2828 | ace_mode: text 2829 | language_id: 215 2830 | M4Sugar: 2831 | type: programming 2832 | group: M4 2833 | aliases: 2834 | - autoconf 2835 | extensions: 2836 | - ".m4" 2837 | filenames: 2838 | - configure.ac 2839 | tm_scope: none 2840 | ace_mode: text 2841 | language_id: 216 2842 | MATLAB: 2843 | type: programming 2844 | color: "#e16737" 2845 | aliases: 2846 | - octave 2847 | extensions: 2848 | - ".matlab" 2849 | - ".m" 2850 | ace_mode: matlab 2851 | codemirror_mode: octave 2852 | codemirror_mime_type: text/x-octave 2853 | language_id: 225 2854 | MAXScript: 2855 | type: programming 2856 | color: "#00a6a6" 2857 | extensions: 2858 | - ".ms" 2859 | - ".mcr" 2860 | tm_scope: source.maxscript 2861 | ace_mode: text 2862 | language_id: 217 2863 | MQL4: 2864 | type: programming 2865 | color: "#62A8D6" 2866 | extensions: 2867 | - ".mq4" 2868 | - ".mqh" 2869 | tm_scope: source.mql5 2870 | ace_mode: c_cpp 2871 | language_id: 426 2872 | MQL5: 2873 | type: programming 2874 | color: "#4A76B8" 2875 | extensions: 2876 | - ".mq5" 2877 | - ".mqh" 2878 | tm_scope: source.mql5 2879 | ace_mode: c_cpp 2880 | language_id: 427 2881 | MTML: 2882 | type: markup 2883 | color: "#b7e1f4" 2884 | extensions: 2885 | - ".mtml" 2886 | tm_scope: text.html.basic 2887 | ace_mode: html 2888 | codemirror_mode: htmlmixed 2889 | codemirror_mime_type: text/html 2890 | language_id: 218 2891 | MUF: 2892 | type: programming 2893 | group: Forth 2894 | extensions: 2895 | - ".muf" 2896 | - ".m" 2897 | tm_scope: none 2898 | ace_mode: forth 2899 | codemirror_mode: forth 2900 | codemirror_mime_type: text/x-forth 2901 | language_id: 219 2902 | Makefile: 2903 | type: programming 2904 | color: "#427819" 2905 | aliases: 2906 | - bsdmake 2907 | - make 2908 | - mf 2909 | extensions: 2910 | - ".mak" 2911 | - ".d" 2912 | - ".make" 2913 | - ".mk" 2914 | - ".mkfile" 2915 | filenames: 2916 | - BSDmakefile 2917 | - GNUmakefile 2918 | - Kbuild 2919 | - Makefile 2920 | - Makefile.am 2921 | - Makefile.boot 2922 | - Makefile.frag 2923 | - Makefile.in 2924 | - Makefile.inc 2925 | - Makefile.wat 2926 | - makefile 2927 | - makefile.sco 2928 | - mkfile 2929 | interpreters: 2930 | - make 2931 | ace_mode: makefile 2932 | codemirror_mode: cmake 2933 | codemirror_mime_type: text/x-cmake 2934 | language_id: 220 2935 | Mako: 2936 | type: programming 2937 | extensions: 2938 | - ".mako" 2939 | - ".mao" 2940 | tm_scope: text.html.mako 2941 | ace_mode: text 2942 | language_id: 221 2943 | Markdown: 2944 | type: prose 2945 | aliases: 2946 | - pandoc 2947 | ace_mode: markdown 2948 | codemirror_mode: gfm 2949 | codemirror_mime_type: text/x-gfm 2950 | wrap: true 2951 | extensions: 2952 | - ".md" 2953 | - ".markdown" 2954 | - ".mdown" 2955 | - ".mdwn" 2956 | - ".mdx" 2957 | - ".mkd" 2958 | - ".mkdn" 2959 | - ".mkdown" 2960 | - ".ronn" 2961 | - ".workbook" 2962 | filenames: 2963 | - contents.lr 2964 | tm_scope: source.gfm 2965 | language_id: 222 2966 | Marko: 2967 | group: HTML 2968 | type: markup 2969 | tm_scope: text.marko 2970 | extensions: 2971 | - ".marko" 2972 | aliases: 2973 | - markojs 2974 | ace_mode: text 2975 | codemirror_mode: htmlmixed 2976 | codemirror_mime_type: text/html 2977 | language_id: 932782397 2978 | Mask: 2979 | type: markup 2980 | color: "#f97732" 2981 | ace_mode: mask 2982 | extensions: 2983 | - ".mask" 2984 | tm_scope: source.mask 2985 | language_id: 223 2986 | Mathematica: 2987 | type: programming 2988 | extensions: 2989 | - ".mathematica" 2990 | - ".cdf" 2991 | - ".m" 2992 | - ".ma" 2993 | - ".mt" 2994 | - ".nb" 2995 | - ".nbp" 2996 | - ".wl" 2997 | - ".wlt" 2998 | aliases: 2999 | - mma 3000 | ace_mode: text 3001 | codemirror_mode: mathematica 3002 | codemirror_mime_type: text/x-mathematica 3003 | language_id: 224 3004 | Maven POM: 3005 | type: data 3006 | tm_scope: text.xml.pom 3007 | filenames: 3008 | - pom.xml 3009 | ace_mode: xml 3010 | codemirror_mode: xml 3011 | codemirror_mime_type: text/xml 3012 | language_id: 226 3013 | Max: 3014 | type: programming 3015 | color: "#c4a79c" 3016 | aliases: 3017 | - max/msp 3018 | - maxmsp 3019 | extensions: 3020 | - ".maxpat" 3021 | - ".maxhelp" 3022 | - ".maxproj" 3023 | - ".mxt" 3024 | - ".pat" 3025 | tm_scope: source.json 3026 | ace_mode: json 3027 | codemirror_mode: javascript 3028 | codemirror_mime_type: application/json 3029 | language_id: 227 3030 | MediaWiki: 3031 | type: prose 3032 | wrap: true 3033 | extensions: 3034 | - ".mediawiki" 3035 | - ".wiki" 3036 | tm_scope: text.html.mediawiki 3037 | ace_mode: text 3038 | language_id: 228 3039 | Mercury: 3040 | type: programming 3041 | color: "#ff2b2b" 3042 | ace_mode: prolog 3043 | interpreters: 3044 | - mmi 3045 | extensions: 3046 | - ".m" 3047 | - ".moo" 3048 | tm_scope: source.mercury 3049 | language_id: 229 3050 | Meson: 3051 | type: programming 3052 | color: "#007800" 3053 | filenames: 3054 | - meson.build 3055 | - meson_options.txt 3056 | tm_scope: source.meson 3057 | ace_mode: text 3058 | language_id: 799141244 3059 | Metal: 3060 | type: programming 3061 | color: "#8f14e9" 3062 | extensions: 3063 | - ".metal" 3064 | tm_scope: source.c++ 3065 | ace_mode: c_cpp 3066 | codemirror_mode: clike 3067 | codemirror_mime_type: text/x-c++src 3068 | language_id: 230 3069 | MiniD: 3070 | type: programming 3071 | searchable: false 3072 | extensions: 3073 | - ".minid" 3074 | tm_scope: none 3075 | ace_mode: text 3076 | language_id: 231 3077 | Mirah: 3078 | type: programming 3079 | color: "#c7a938" 3080 | extensions: 3081 | - ".druby" 3082 | - ".duby" 3083 | - ".mirah" 3084 | tm_scope: source.ruby 3085 | ace_mode: ruby 3086 | codemirror_mode: ruby 3087 | codemirror_mime_type: text/x-ruby 3088 | language_id: 232 3089 | Modelica: 3090 | type: programming 3091 | extensions: 3092 | - ".mo" 3093 | tm_scope: source.modelica 3094 | ace_mode: text 3095 | codemirror_mode: modelica 3096 | codemirror_mime_type: text/x-modelica 3097 | language_id: 233 3098 | Modula-2: 3099 | type: programming 3100 | extensions: 3101 | - ".mod" 3102 | tm_scope: source.modula2 3103 | ace_mode: text 3104 | language_id: 234 3105 | Modula-3: 3106 | type: programming 3107 | extensions: 3108 | - ".i3" 3109 | - ".ig" 3110 | - ".m3" 3111 | - ".mg" 3112 | color: "#223388" 3113 | ace_mode: text 3114 | tm_scope: source.modula-3 3115 | language_id: 564743864 3116 | Module Management System: 3117 | type: programming 3118 | extensions: 3119 | - ".mms" 3120 | - ".mmk" 3121 | filenames: 3122 | - descrip.mmk 3123 | - descrip.mms 3124 | tm_scope: none 3125 | ace_mode: text 3126 | language_id: 235 3127 | Monkey: 3128 | type: programming 3129 | extensions: 3130 | - ".monkey" 3131 | - ".monkey2" 3132 | ace_mode: text 3133 | tm_scope: source.monkey 3134 | language_id: 236 3135 | Moocode: 3136 | type: programming 3137 | extensions: 3138 | - ".moo" 3139 | tm_scope: none 3140 | ace_mode: text 3141 | language_id: 237 3142 | MoonScript: 3143 | type: programming 3144 | extensions: 3145 | - ".moon" 3146 | interpreters: 3147 | - moon 3148 | ace_mode: text 3149 | language_id: 238 3150 | Motorola 68K Assembly: 3151 | type: programming 3152 | group: Assembly 3153 | extensions: 3154 | - ".X68" 3155 | tm_scope: source.m68k 3156 | ace_mode: assembly_x86 3157 | language_id: 477582706 3158 | Myghty: 3159 | type: programming 3160 | extensions: 3161 | - ".myt" 3162 | tm_scope: none 3163 | ace_mode: text 3164 | language_id: 239 3165 | NCL: 3166 | type: programming 3167 | color: "#28431f" 3168 | extensions: 3169 | - ".ncl" 3170 | tm_scope: source.ncl 3171 | ace_mode: text 3172 | language_id: 240 3173 | NL: 3174 | type: data 3175 | extensions: 3176 | - ".nl" 3177 | tm_scope: none 3178 | ace_mode: text 3179 | language_id: 241 3180 | NSIS: 3181 | type: programming 3182 | extensions: 3183 | - ".nsi" 3184 | - ".nsh" 3185 | ace_mode: text 3186 | codemirror_mode: nsis 3187 | codemirror_mime_type: text/x-nsis 3188 | language_id: 242 3189 | Nearley: 3190 | type: programming 3191 | ace_mode: text 3192 | color: "#990000" 3193 | extensions: 3194 | - ".ne" 3195 | - ".nearley" 3196 | tm_scope: source.ne 3197 | language_id: 521429430 3198 | Nemerle: 3199 | type: programming 3200 | color: "#3d3c6e" 3201 | extensions: 3202 | - ".n" 3203 | ace_mode: text 3204 | language_id: 243 3205 | NetLinx: 3206 | type: programming 3207 | color: "#0aa0ff" 3208 | extensions: 3209 | - ".axs" 3210 | - ".axi" 3211 | tm_scope: source.netlinx 3212 | ace_mode: text 3213 | language_id: 244 3214 | NetLinx+ERB: 3215 | type: programming 3216 | color: "#747faa" 3217 | extensions: 3218 | - ".axs.erb" 3219 | - ".axi.erb" 3220 | tm_scope: source.netlinx.erb 3221 | ace_mode: text 3222 | language_id: 245 3223 | NetLogo: 3224 | type: programming 3225 | color: "#ff6375" 3226 | extensions: 3227 | - ".nlogo" 3228 | tm_scope: source.lisp 3229 | ace_mode: lisp 3230 | codemirror_mode: commonlisp 3231 | codemirror_mime_type: text/x-common-lisp 3232 | language_id: 246 3233 | NewLisp: 3234 | type: programming 3235 | color: "#87AED7" 3236 | extensions: 3237 | - ".nl" 3238 | - ".lisp" 3239 | - ".lsp" 3240 | interpreters: 3241 | - newlisp 3242 | tm_scope: source.lisp 3243 | ace_mode: lisp 3244 | codemirror_mode: commonlisp 3245 | codemirror_mime_type: text/x-common-lisp 3246 | language_id: 247 3247 | Nextflow: 3248 | type: programming 3249 | ace_mode: groovy 3250 | tm_scope: source.nextflow 3251 | color: "#3ac486" 3252 | extensions: 3253 | - ".nf" 3254 | filenames: 3255 | - nextflow.config 3256 | interpreters: 3257 | - nextflow 3258 | language_id: 506780613 3259 | Nginx: 3260 | type: data 3261 | extensions: 3262 | - ".nginxconf" 3263 | - ".vhost" 3264 | filenames: 3265 | - nginx.conf 3266 | tm_scope: source.nginx 3267 | aliases: 3268 | - nginx configuration file 3269 | ace_mode: text 3270 | codemirror_mode: nginx 3271 | codemirror_mime_type: text/x-nginx-conf 3272 | language_id: 248 3273 | Nim: 3274 | type: programming 3275 | color: "#37775b" 3276 | extensions: 3277 | - ".nim" 3278 | - ".nim.cfg" 3279 | - ".nimble" 3280 | - ".nimrod" 3281 | - ".nims" 3282 | filenames: 3283 | - nim.cfg 3284 | ace_mode: text 3285 | tm_scope: source.nim 3286 | language_id: 249 3287 | Ninja: 3288 | type: data 3289 | tm_scope: source.ninja 3290 | extensions: 3291 | - ".ninja" 3292 | ace_mode: text 3293 | language_id: 250 3294 | Nit: 3295 | type: programming 3296 | color: "#009917" 3297 | extensions: 3298 | - ".nit" 3299 | tm_scope: source.nit 3300 | ace_mode: text 3301 | language_id: 251 3302 | Nix: 3303 | type: programming 3304 | color: "#7e7eff" 3305 | extensions: 3306 | - ".nix" 3307 | aliases: 3308 | - nixos 3309 | tm_scope: source.nix 3310 | ace_mode: nix 3311 | language_id: 252 3312 | Nu: 3313 | type: programming 3314 | color: "#c9df40" 3315 | aliases: 3316 | - nush 3317 | extensions: 3318 | - ".nu" 3319 | filenames: 3320 | - Nukefile 3321 | tm_scope: source.nu 3322 | ace_mode: scheme 3323 | codemirror_mode: scheme 3324 | codemirror_mime_type: text/x-scheme 3325 | interpreters: 3326 | - nush 3327 | language_id: 253 3328 | NumPy: 3329 | type: programming 3330 | group: Python 3331 | extensions: 3332 | - ".numpy" 3333 | - ".numpyw" 3334 | - ".numsc" 3335 | tm_scope: none 3336 | ace_mode: text 3337 | codemirror_mode: python 3338 | codemirror_mime_type: text/x-python 3339 | language_id: 254 3340 | OCaml: 3341 | type: programming 3342 | ace_mode: ocaml 3343 | codemirror_mode: mllike 3344 | codemirror_mime_type: text/x-ocaml 3345 | color: "#3be133" 3346 | extensions: 3347 | - ".ml" 3348 | - ".eliom" 3349 | - ".eliomi" 3350 | - ".ml4" 3351 | - ".mli" 3352 | - ".mll" 3353 | - ".mly" 3354 | interpreters: 3355 | - ocaml 3356 | - ocamlrun 3357 | - ocamlscript 3358 | tm_scope: source.ocaml 3359 | language_id: 255 3360 | ObjDump: 3361 | type: data 3362 | extensions: 3363 | - ".objdump" 3364 | tm_scope: objdump.x86asm 3365 | ace_mode: assembly_x86 3366 | language_id: 256 3367 | ObjectScript: 3368 | type: programming 3369 | extensions: 3370 | - ".cls" 3371 | language_id: 202735509 3372 | tm_scope: source.objectscript 3373 | color: "#424893" 3374 | ace_mode: text 3375 | Objective-C: 3376 | type: programming 3377 | tm_scope: source.objc 3378 | color: "#438eff" 3379 | aliases: 3380 | - obj-c 3381 | - objc 3382 | - objectivec 3383 | extensions: 3384 | - ".m" 3385 | - ".h" 3386 | ace_mode: objectivec 3387 | codemirror_mode: clike 3388 | codemirror_mime_type: text/x-objectivec 3389 | language_id: 257 3390 | Objective-C++: 3391 | type: programming 3392 | tm_scope: source.objc++ 3393 | color: "#6866fb" 3394 | aliases: 3395 | - obj-c++ 3396 | - objc++ 3397 | - objectivec++ 3398 | extensions: 3399 | - ".mm" 3400 | ace_mode: objectivec 3401 | codemirror_mode: clike 3402 | codemirror_mime_type: text/x-objectivec 3403 | language_id: 258 3404 | Objective-J: 3405 | type: programming 3406 | color: "#ff0c5a" 3407 | aliases: 3408 | - obj-j 3409 | - objectivej 3410 | - objj 3411 | extensions: 3412 | - ".j" 3413 | - ".sj" 3414 | tm_scope: source.js.objj 3415 | ace_mode: text 3416 | language_id: 259 3417 | Omgrofl: 3418 | type: programming 3419 | extensions: 3420 | - ".omgrofl" 3421 | color: "#cabbff" 3422 | tm_scope: none 3423 | ace_mode: text 3424 | language_id: 260 3425 | Opa: 3426 | type: programming 3427 | extensions: 3428 | - ".opa" 3429 | ace_mode: text 3430 | language_id: 261 3431 | Opal: 3432 | type: programming 3433 | color: "#f7ede0" 3434 | extensions: 3435 | - ".opal" 3436 | tm_scope: source.opal 3437 | ace_mode: text 3438 | language_id: 262 3439 | OpenCL: 3440 | type: programming 3441 | group: C 3442 | extensions: 3443 | - ".cl" 3444 | - ".opencl" 3445 | tm_scope: source.c 3446 | ace_mode: c_cpp 3447 | codemirror_mode: clike 3448 | codemirror_mime_type: text/x-csrc 3449 | language_id: 263 3450 | OpenEdge ABL: 3451 | type: programming 3452 | aliases: 3453 | - progress 3454 | - openedge 3455 | - abl 3456 | extensions: 3457 | - ".p" 3458 | - ".cls" 3459 | - ".w" 3460 | tm_scope: source.abl 3461 | ace_mode: text 3462 | language_id: 264 3463 | OpenRC runscript: 3464 | type: programming 3465 | group: Shell 3466 | aliases: 3467 | - openrc 3468 | interpreters: 3469 | - openrc-run 3470 | tm_scope: source.shell 3471 | ace_mode: sh 3472 | codemirror_mode: shell 3473 | codemirror_mime_type: text/x-sh 3474 | language_id: 265 3475 | OpenSCAD: 3476 | type: programming 3477 | extensions: 3478 | - ".scad" 3479 | tm_scope: source.scad 3480 | ace_mode: scad 3481 | language_id: 266 3482 | OpenType Feature File: 3483 | type: data 3484 | aliases: 3485 | - AFDKO 3486 | extensions: 3487 | - ".fea" 3488 | tm_scope: source.opentype 3489 | ace_mode: text 3490 | language_id: 374317347 3491 | Org: 3492 | type: prose 3493 | wrap: true 3494 | extensions: 3495 | - ".org" 3496 | tm_scope: none 3497 | ace_mode: text 3498 | language_id: 267 3499 | Ox: 3500 | type: programming 3501 | extensions: 3502 | - ".ox" 3503 | - ".oxh" 3504 | - ".oxo" 3505 | tm_scope: source.ox 3506 | ace_mode: text 3507 | language_id: 268 3508 | Oxygene: 3509 | type: programming 3510 | color: "#cdd0e3" 3511 | extensions: 3512 | - ".oxygene" 3513 | tm_scope: none 3514 | ace_mode: text 3515 | language_id: 269 3516 | Oz: 3517 | type: programming 3518 | color: "#fab738" 3519 | extensions: 3520 | - ".oz" 3521 | tm_scope: source.oz 3522 | ace_mode: text 3523 | codemirror_mode: oz 3524 | codemirror_mime_type: text/x-oz 3525 | language_id: 270 3526 | P4: 3527 | type: programming 3528 | color: "#7055b5" 3529 | extensions: 3530 | - ".p4" 3531 | tm_scope: source.p4 3532 | ace_mode: text 3533 | language_id: 348895984 3534 | PHP: 3535 | type: programming 3536 | tm_scope: text.html.php 3537 | ace_mode: php 3538 | codemirror_mode: php 3539 | codemirror_mime_type: application/x-httpd-php 3540 | color: "#4F5D95" 3541 | extensions: 3542 | - ".php" 3543 | - ".aw" 3544 | - ".ctp" 3545 | - ".fcgi" 3546 | - ".inc" 3547 | - ".php3" 3548 | - ".php4" 3549 | - ".php5" 3550 | - ".phps" 3551 | - ".phpt" 3552 | filenames: 3553 | - ".php" 3554 | - ".php_cs" 3555 | - ".php_cs.dist" 3556 | - Phakefile 3557 | interpreters: 3558 | - php 3559 | aliases: 3560 | - inc 3561 | language_id: 272 3562 | PLSQL: 3563 | type: programming 3564 | ace_mode: sql 3565 | codemirror_mode: sql 3566 | codemirror_mime_type: text/x-plsql 3567 | tm_scope: none 3568 | color: "#dad8d8" 3569 | extensions: 3570 | - ".pls" 3571 | - ".bdy" 3572 | - ".ddl" 3573 | - ".fnc" 3574 | - ".pck" 3575 | - ".pkb" 3576 | - ".pks" 3577 | - ".plb" 3578 | - ".plsql" 3579 | - ".prc" 3580 | - ".spc" 3581 | - ".sql" 3582 | - ".tpb" 3583 | - ".tps" 3584 | - ".trg" 3585 | - ".vw" 3586 | language_id: 273 3587 | PLpgSQL: 3588 | type: programming 3589 | ace_mode: pgsql 3590 | codemirror_mode: sql 3591 | codemirror_mime_type: text/x-sql 3592 | tm_scope: source.sql 3593 | extensions: 3594 | - ".pgsql" 3595 | - ".sql" 3596 | language_id: 274 3597 | POV-Ray SDL: 3598 | type: programming 3599 | aliases: 3600 | - pov-ray 3601 | - povray 3602 | extensions: 3603 | - ".pov" 3604 | - ".inc" 3605 | ace_mode: text 3606 | language_id: 275 3607 | Pan: 3608 | type: programming 3609 | color: "#cc0000" 3610 | extensions: 3611 | - ".pan" 3612 | tm_scope: source.pan 3613 | ace_mode: text 3614 | language_id: 276 3615 | Papyrus: 3616 | type: programming 3617 | color: "#6600cc" 3618 | extensions: 3619 | - ".psc" 3620 | tm_scope: source.papyrus.skyrim 3621 | ace_mode: text 3622 | language_id: 277 3623 | Parrot: 3624 | type: programming 3625 | color: "#f3ca0a" 3626 | extensions: 3627 | - ".parrot" 3628 | tm_scope: none 3629 | ace_mode: text 3630 | language_id: 278 3631 | Parrot Assembly: 3632 | group: Parrot 3633 | type: programming 3634 | aliases: 3635 | - pasm 3636 | extensions: 3637 | - ".pasm" 3638 | interpreters: 3639 | - parrot 3640 | tm_scope: none 3641 | ace_mode: text 3642 | language_id: 279 3643 | Parrot Internal Representation: 3644 | group: Parrot 3645 | tm_scope: source.parrot.pir 3646 | type: programming 3647 | aliases: 3648 | - pir 3649 | extensions: 3650 | - ".pir" 3651 | interpreters: 3652 | - parrot 3653 | ace_mode: text 3654 | language_id: 280 3655 | Pascal: 3656 | type: programming 3657 | color: "#E3F171" 3658 | extensions: 3659 | - ".pas" 3660 | - ".dfm" 3661 | - ".dpr" 3662 | - ".inc" 3663 | - ".lpr" 3664 | - ".pascal" 3665 | - ".pp" 3666 | interpreters: 3667 | - instantfpc 3668 | ace_mode: pascal 3669 | codemirror_mode: pascal 3670 | codemirror_mime_type: text/x-pascal 3671 | language_id: 281 3672 | Pawn: 3673 | type: programming 3674 | color: "#dbb284" 3675 | extensions: 3676 | - ".pwn" 3677 | - ".inc" 3678 | - ".sma" 3679 | tm_scope: source.pawn 3680 | ace_mode: text 3681 | language_id: 271 3682 | Pep8: 3683 | type: programming 3684 | color: "#C76F5B" 3685 | extensions: 3686 | - ".pep" 3687 | ace_mode: text 3688 | tm_scope: source.pep8 3689 | language_id: 840372442 3690 | Perl: 3691 | type: programming 3692 | tm_scope: source.perl 3693 | ace_mode: perl 3694 | codemirror_mode: perl 3695 | codemirror_mime_type: text/x-perl 3696 | color: "#0298c3" 3697 | extensions: 3698 | - ".pl" 3699 | - ".al" 3700 | - ".cgi" 3701 | - ".fcgi" 3702 | - ".perl" 3703 | - ".ph" 3704 | - ".plx" 3705 | - ".pm" 3706 | - ".psgi" 3707 | - ".t" 3708 | filenames: 3709 | - Makefile.PL 3710 | - Rexfile 3711 | - ack 3712 | - cpanfile 3713 | interpreters: 3714 | - cperl 3715 | - perl 3716 | aliases: 3717 | - cperl 3718 | language_id: 282 3719 | Perl 6: 3720 | type: programming 3721 | color: "#0000fb" 3722 | extensions: 3723 | - ".6pl" 3724 | - ".6pm" 3725 | - ".nqp" 3726 | - ".p6" 3727 | - ".p6l" 3728 | - ".p6m" 3729 | - ".pl" 3730 | - ".pl6" 3731 | - ".pm" 3732 | - ".pm6" 3733 | - ".t" 3734 | interpreters: 3735 | - perl6 3736 | aliases: 3737 | - perl6 3738 | tm_scope: source.perl6fe 3739 | ace_mode: perl 3740 | codemirror_mode: perl 3741 | codemirror_mime_type: text/x-perl 3742 | language_id: 283 3743 | Pic: 3744 | type: markup 3745 | group: Roff 3746 | tm_scope: source.pic 3747 | extensions: 3748 | - ".pic" 3749 | - ".chem" 3750 | ace_mode: text 3751 | codemirror_mode: troff 3752 | codemirror_mime_type: text/troff 3753 | language_id: 425 3754 | Pickle: 3755 | type: data 3756 | extensions: 3757 | - ".pkl" 3758 | tm_scope: none 3759 | ace_mode: text 3760 | language_id: 284 3761 | PicoLisp: 3762 | type: programming 3763 | extensions: 3764 | - ".l" 3765 | interpreters: 3766 | - picolisp 3767 | - pil 3768 | tm_scope: source.lisp 3769 | ace_mode: lisp 3770 | language_id: 285 3771 | PigLatin: 3772 | type: programming 3773 | color: "#fcd7de" 3774 | extensions: 3775 | - ".pig" 3776 | tm_scope: source.pig_latin 3777 | ace_mode: text 3778 | language_id: 286 3779 | Pike: 3780 | type: programming 3781 | color: "#005390" 3782 | extensions: 3783 | - ".pike" 3784 | - ".pmod" 3785 | interpreters: 3786 | - pike 3787 | ace_mode: text 3788 | language_id: 287 3789 | Pod: 3790 | type: prose 3791 | ace_mode: perl 3792 | codemirror_mode: perl 3793 | codemirror_mime_type: text/x-perl 3794 | wrap: true 3795 | extensions: 3796 | - ".pod" 3797 | interpreters: 3798 | - perl 3799 | tm_scope: none 3800 | language_id: 288 3801 | Pod 6: 3802 | type: prose 3803 | ace_mode: perl 3804 | tm_scope: source.perl6fe 3805 | wrap: true 3806 | extensions: 3807 | - ".pod" 3808 | - ".pod6" 3809 | interpreters: 3810 | - perl6 3811 | language_id: 155357471 3812 | PogoScript: 3813 | type: programming 3814 | color: "#d80074" 3815 | extensions: 3816 | - ".pogo" 3817 | tm_scope: source.pogoscript 3818 | ace_mode: text 3819 | language_id: 289 3820 | Pony: 3821 | type: programming 3822 | extensions: 3823 | - ".pony" 3824 | tm_scope: source.pony 3825 | ace_mode: text 3826 | language_id: 290 3827 | PostCSS: 3828 | type: markup 3829 | tm_scope: source.postcss 3830 | group: CSS 3831 | extensions: 3832 | - ".pcss" 3833 | ace_mode: text 3834 | language_id: 262764437 3835 | PostScript: 3836 | type: markup 3837 | color: "#da291c" 3838 | extensions: 3839 | - ".ps" 3840 | - ".eps" 3841 | - ".pfa" 3842 | tm_scope: source.postscript 3843 | aliases: 3844 | - postscr 3845 | ace_mode: text 3846 | language_id: 291 3847 | PowerBuilder: 3848 | type: programming 3849 | color: "#8f0f8d" 3850 | extensions: 3851 | - ".pbt" 3852 | - ".sra" 3853 | - ".sru" 3854 | - ".srw" 3855 | tm_scope: none 3856 | ace_mode: text 3857 | language_id: 292 3858 | PowerShell: 3859 | type: programming 3860 | color: "#012456" 3861 | ace_mode: powershell 3862 | codemirror_mode: powershell 3863 | codemirror_mime_type: application/x-powershell 3864 | aliases: 3865 | - posh 3866 | - pwsh 3867 | extensions: 3868 | - ".ps1" 3869 | - ".psd1" 3870 | - ".psm1" 3871 | interpreters: 3872 | - pwsh 3873 | language_id: 293 3874 | Processing: 3875 | type: programming 3876 | color: "#0096D8" 3877 | extensions: 3878 | - ".pde" 3879 | ace_mode: text 3880 | language_id: 294 3881 | Prolog: 3882 | type: programming 3883 | color: "#74283c" 3884 | extensions: 3885 | - ".pl" 3886 | - ".pro" 3887 | - ".prolog" 3888 | - ".yap" 3889 | interpreters: 3890 | - swipl 3891 | - yap 3892 | tm_scope: source.prolog 3893 | ace_mode: prolog 3894 | language_id: 295 3895 | Propeller Spin: 3896 | type: programming 3897 | color: "#7fa2a7" 3898 | extensions: 3899 | - ".spin" 3900 | tm_scope: source.spin 3901 | ace_mode: text 3902 | language_id: 296 3903 | Protocol Buffer: 3904 | type: data 3905 | aliases: 3906 | - protobuf 3907 | - Protocol Buffers 3908 | extensions: 3909 | - ".proto" 3910 | tm_scope: source.protobuf 3911 | ace_mode: protobuf 3912 | codemirror_mode: protobuf 3913 | codemirror_mime_type: text/x-protobuf 3914 | language_id: 297 3915 | Public Key: 3916 | type: data 3917 | extensions: 3918 | - ".asc" 3919 | - ".pub" 3920 | tm_scope: none 3921 | ace_mode: text 3922 | codemirror_mode: asciiarmor 3923 | codemirror_mime_type: application/pgp 3924 | language_id: 298 3925 | Pug: 3926 | group: HTML 3927 | type: markup 3928 | extensions: 3929 | - ".jade" 3930 | - ".pug" 3931 | tm_scope: text.jade 3932 | ace_mode: jade 3933 | codemirror_mode: pug 3934 | codemirror_mime_type: text/x-pug 3935 | language_id: 179 3936 | Puppet: 3937 | type: programming 3938 | color: "#302B6D" 3939 | extensions: 3940 | - ".pp" 3941 | filenames: 3942 | - Modulefile 3943 | ace_mode: text 3944 | codemirror_mode: puppet 3945 | codemirror_mime_type: text/x-puppet 3946 | tm_scope: source.puppet 3947 | language_id: 299 3948 | Pure Data: 3949 | type: data 3950 | extensions: 3951 | - ".pd" 3952 | tm_scope: none 3953 | ace_mode: text 3954 | language_id: 300 3955 | PureBasic: 3956 | type: programming 3957 | color: "#5a6986" 3958 | extensions: 3959 | - ".pb" 3960 | - ".pbi" 3961 | tm_scope: none 3962 | ace_mode: text 3963 | language_id: 301 3964 | PureScript: 3965 | type: programming 3966 | color: "#1D222D" 3967 | extensions: 3968 | - ".purs" 3969 | tm_scope: source.purescript 3970 | ace_mode: haskell 3971 | codemirror_mode: haskell 3972 | codemirror_mime_type: text/x-haskell 3973 | language_id: 302 3974 | Python: 3975 | type: programming 3976 | ace_mode: python 3977 | codemirror_mode: python 3978 | codemirror_mime_type: text/x-python 3979 | color: "#3572A5" 3980 | extensions: 3981 | - ".py" 3982 | - ".bzl" 3983 | - ".cgi" 3984 | - ".fcgi" 3985 | - ".gyp" 3986 | - ".gypi" 3987 | - ".lmi" 3988 | - ".py3" 3989 | - ".pyde" 3990 | - ".pyi" 3991 | - ".pyp" 3992 | - ".pyt" 3993 | - ".pyw" 3994 | - ".rpy" 3995 | - ".spec" 3996 | - ".tac" 3997 | - ".wsgi" 3998 | - ".xpy" 3999 | filenames: 4000 | - ".gclient" 4001 | - BUCK 4002 | - BUILD 4003 | - BUILD.bazel 4004 | - DEPS 4005 | - SConscript 4006 | - SConstruct 4007 | - Snakefile 4008 | - WORKSPACE 4009 | - wscript 4010 | interpreters: 4011 | - python 4012 | - python2 4013 | - python3 4014 | aliases: 4015 | - rusthon 4016 | - python3 4017 | language_id: 303 4018 | Python console: 4019 | type: programming 4020 | group: Python 4021 | searchable: false 4022 | aliases: 4023 | - pycon 4024 | tm_scope: text.python.console 4025 | ace_mode: text 4026 | language_id: 428 4027 | Python traceback: 4028 | type: data 4029 | group: Python 4030 | searchable: false 4031 | extensions: 4032 | - ".pytb" 4033 | tm_scope: text.python.traceback 4034 | ace_mode: text 4035 | language_id: 304 4036 | QML: 4037 | type: programming 4038 | color: "#44a51c" 4039 | extensions: 4040 | - ".qml" 4041 | - ".qbs" 4042 | tm_scope: source.qml 4043 | ace_mode: text 4044 | language_id: 305 4045 | QMake: 4046 | type: programming 4047 | extensions: 4048 | - ".pro" 4049 | - ".pri" 4050 | interpreters: 4051 | - qmake 4052 | ace_mode: text 4053 | language_id: 306 4054 | Quake: 4055 | type: programming 4056 | filenames: 4057 | - m3makefile 4058 | - m3overrides 4059 | color: "#882233" 4060 | ace_mode: text 4061 | tm_scope: source.quake 4062 | language_id: 375265331 4063 | R: 4064 | type: programming 4065 | color: "#198CE7" 4066 | aliases: 4067 | - R 4068 | - Rscript 4069 | - splus 4070 | extensions: 4071 | - ".r" 4072 | - ".rd" 4073 | - ".rsx" 4074 | filenames: 4075 | - ".Rprofile" 4076 | - expr-dist 4077 | interpreters: 4078 | - Rscript 4079 | ace_mode: r 4080 | codemirror_mode: r 4081 | codemirror_mime_type: text/x-rsrc 4082 | language_id: 307 4083 | RAML: 4084 | type: markup 4085 | ace_mode: yaml 4086 | codemirror_mode: yaml 4087 | codemirror_mime_type: text/x-yaml 4088 | tm_scope: source.yaml 4089 | color: "#77d9fb" 4090 | extensions: 4091 | - ".raml" 4092 | language_id: 308 4093 | RDoc: 4094 | type: prose 4095 | ace_mode: rdoc 4096 | wrap: true 4097 | extensions: 4098 | - ".rdoc" 4099 | tm_scope: text.rdoc 4100 | language_id: 309 4101 | REALbasic: 4102 | type: programming 4103 | extensions: 4104 | - ".rbbas" 4105 | - ".rbfrm" 4106 | - ".rbmnu" 4107 | - ".rbres" 4108 | - ".rbtbar" 4109 | - ".rbuistate" 4110 | tm_scope: source.vbnet 4111 | ace_mode: text 4112 | language_id: 310 4113 | REXX: 4114 | type: programming 4115 | aliases: 4116 | - arexx 4117 | extensions: 4118 | - ".rexx" 4119 | - ".pprx" 4120 | - ".rex" 4121 | interpreters: 4122 | - regina 4123 | - rexx 4124 | tm_scope: source.rexx 4125 | ace_mode: text 4126 | language_id: 311 4127 | RHTML: 4128 | type: markup 4129 | group: HTML 4130 | extensions: 4131 | - ".rhtml" 4132 | tm_scope: text.html.erb 4133 | aliases: 4134 | - html+ruby 4135 | ace_mode: rhtml 4136 | codemirror_mode: htmlembedded 4137 | codemirror_mime_type: application/x-erb 4138 | language_id: 312 4139 | RMarkdown: 4140 | type: prose 4141 | wrap: true 4142 | ace_mode: markdown 4143 | codemirror_mode: gfm 4144 | codemirror_mime_type: text/x-gfm 4145 | extensions: 4146 | - ".rmd" 4147 | tm_scope: source.gfm 4148 | language_id: 313 4149 | RPC: 4150 | type: programming 4151 | aliases: 4152 | - rpcgen 4153 | - oncrpc 4154 | - xdr 4155 | ace_mode: c_cpp 4156 | extensions: 4157 | - ".x" 4158 | tm_scope: source.c 4159 | language_id: 1031374237 4160 | RPM Spec: 4161 | type: data 4162 | tm_scope: source.rpm-spec 4163 | extensions: 4164 | - ".spec" 4165 | aliases: 4166 | - specfile 4167 | ace_mode: text 4168 | codemirror_mode: rpm 4169 | codemirror_mime_type: text/x-rpm-spec 4170 | language_id: 314 4171 | RUNOFF: 4172 | type: markup 4173 | color: "#665a4e" 4174 | extensions: 4175 | - ".rnh" 4176 | - ".rno" 4177 | tm_scope: text.runoff 4178 | ace_mode: text 4179 | language_id: 315 4180 | Racket: 4181 | type: programming 4182 | color: "#3c5caa" 4183 | extensions: 4184 | - ".rkt" 4185 | - ".rktd" 4186 | - ".rktl" 4187 | - ".scrbl" 4188 | interpreters: 4189 | - racket 4190 | tm_scope: source.racket 4191 | ace_mode: lisp 4192 | language_id: 316 4193 | Ragel: 4194 | type: programming 4195 | color: "#9d5200" 4196 | extensions: 4197 | - ".rl" 4198 | aliases: 4199 | - ragel-rb 4200 | - ragel-ruby 4201 | tm_scope: none 4202 | ace_mode: text 4203 | language_id: 317 4204 | Rascal: 4205 | type: programming 4206 | color: "#fffaa0" 4207 | extensions: 4208 | - ".rsc" 4209 | tm_scope: source.rascal 4210 | ace_mode: text 4211 | language_id: 173616037 4212 | Raw token data: 4213 | type: data 4214 | aliases: 4215 | - raw 4216 | extensions: 4217 | - ".raw" 4218 | tm_scope: none 4219 | ace_mode: text 4220 | language_id: 318 4221 | Reason: 4222 | type: programming 4223 | group: OCaml 4224 | ace_mode: rust 4225 | codemirror_mode: rust 4226 | codemirror_mime_type: text/x-rustsrc 4227 | extensions: 4228 | - ".re" 4229 | - ".rei" 4230 | interpreters: 4231 | - ocaml 4232 | tm_scope: source.reason 4233 | language_id: 869538413 4234 | Rebol: 4235 | type: programming 4236 | color: "#358a5b" 4237 | extensions: 4238 | - ".reb" 4239 | - ".r" 4240 | - ".r2" 4241 | - ".r3" 4242 | - ".rebol" 4243 | ace_mode: text 4244 | tm_scope: source.rebol 4245 | language_id: 319 4246 | Red: 4247 | type: programming 4248 | color: "#f50000" 4249 | extensions: 4250 | - ".red" 4251 | - ".reds" 4252 | aliases: 4253 | - red/system 4254 | tm_scope: source.red 4255 | ace_mode: text 4256 | language_id: 320 4257 | Redcode: 4258 | type: programming 4259 | extensions: 4260 | - ".cw" 4261 | tm_scope: none 4262 | ace_mode: text 4263 | language_id: 321 4264 | Regular Expression: 4265 | type: data 4266 | extensions: 4267 | - ".regexp" 4268 | - ".regex" 4269 | aliases: 4270 | - regexp 4271 | - regex 4272 | ace_mode: text 4273 | tm_scope: source.regexp 4274 | language_id: 363378884 4275 | Ren'Py: 4276 | type: programming 4277 | aliases: 4278 | - renpy 4279 | color: "#ff7f7f" 4280 | extensions: 4281 | - ".rpy" 4282 | tm_scope: source.renpy 4283 | ace_mode: python 4284 | language_id: 322 4285 | RenderScript: 4286 | type: programming 4287 | extensions: 4288 | - ".rs" 4289 | - ".rsh" 4290 | tm_scope: none 4291 | ace_mode: text 4292 | language_id: 323 4293 | Rich Text Format: 4294 | type: markup 4295 | extensions: 4296 | - ".rtf" 4297 | tm_scope: text.rtf 4298 | ace_mode: text 4299 | language_id: 51601661 4300 | Ring: 4301 | type: programming 4302 | color: "#2D54CB" 4303 | extensions: 4304 | - ".ring" 4305 | tm_scope: source.ring 4306 | ace_mode: text 4307 | language_id: 431 4308 | RobotFramework: 4309 | type: programming 4310 | extensions: 4311 | - ".robot" 4312 | tm_scope: text.robot 4313 | ace_mode: text 4314 | language_id: 324 4315 | Roff: 4316 | type: markup 4317 | color: "#ecdebe" 4318 | extensions: 4319 | - ".roff" 4320 | - ".1" 4321 | - ".1in" 4322 | - ".1m" 4323 | - ".1x" 4324 | - ".2" 4325 | - ".3" 4326 | - ".3in" 4327 | - ".3m" 4328 | - ".3p" 4329 | - ".3pm" 4330 | - ".3qt" 4331 | - ".3x" 4332 | - ".4" 4333 | - ".5" 4334 | - ".6" 4335 | - ".7" 4336 | - ".8" 4337 | - ".9" 4338 | - ".l" 4339 | - ".man" 4340 | - ".mdoc" 4341 | - ".me" 4342 | - ".ms" 4343 | - ".n" 4344 | - ".nr" 4345 | - ".rno" 4346 | - ".tmac" 4347 | filenames: 4348 | - mmn 4349 | - mmt 4350 | tm_scope: text.roff 4351 | aliases: 4352 | - groff 4353 | - man 4354 | - manpage 4355 | - man page 4356 | - man-page 4357 | - mdoc 4358 | - nroff 4359 | - troff 4360 | ace_mode: text 4361 | codemirror_mode: troff 4362 | codemirror_mime_type: text/troff 4363 | language_id: 141 4364 | Roff Manpage: 4365 | type: markup 4366 | group: Roff 4367 | extensions: 4368 | - ".1" 4369 | - ".1in" 4370 | - ".1m" 4371 | - ".1x" 4372 | - ".2" 4373 | - ".3" 4374 | - ".3in" 4375 | - ".3m" 4376 | - ".3p" 4377 | - ".3pm" 4378 | - ".3qt" 4379 | - ".3x" 4380 | - ".4" 4381 | - ".5" 4382 | - ".6" 4383 | - ".7" 4384 | - ".8" 4385 | - ".9" 4386 | - ".man" 4387 | - ".mdoc" 4388 | tm_scope: text.roff 4389 | ace_mode: text 4390 | codemirror_mode: troff 4391 | codemirror_mime_type: text/troff 4392 | language_id: 612669833 4393 | Rouge: 4394 | type: programming 4395 | ace_mode: clojure 4396 | codemirror_mode: clojure 4397 | codemirror_mime_type: text/x-clojure 4398 | color: "#cc0088" 4399 | extensions: 4400 | - ".rg" 4401 | tm_scope: source.clojure 4402 | language_id: 325 4403 | Ruby: 4404 | type: programming 4405 | ace_mode: ruby 4406 | codemirror_mode: ruby 4407 | codemirror_mime_type: text/x-ruby 4408 | color: "#701516" 4409 | aliases: 4410 | - jruby 4411 | - macruby 4412 | - rake 4413 | - rb 4414 | - rbx 4415 | extensions: 4416 | - ".rb" 4417 | - ".builder" 4418 | - ".eye" 4419 | - ".fcgi" 4420 | - ".gemspec" 4421 | - ".god" 4422 | - ".jbuilder" 4423 | - ".mspec" 4424 | - ".pluginspec" 4425 | - ".podspec" 4426 | - ".rabl" 4427 | - ".rake" 4428 | - ".rbuild" 4429 | - ".rbw" 4430 | - ".rbx" 4431 | - ".ru" 4432 | - ".ruby" 4433 | - ".spec" 4434 | - ".thor" 4435 | - ".watchr" 4436 | interpreters: 4437 | - ruby 4438 | - macruby 4439 | - rake 4440 | - jruby 4441 | - rbx 4442 | filenames: 4443 | - ".irbrc" 4444 | - ".pryrc" 4445 | - Appraisals 4446 | - Berksfile 4447 | - Brewfile 4448 | - Buildfile 4449 | - Capfile 4450 | - Dangerfile 4451 | - Deliverfile 4452 | - Fastfile 4453 | - Gemfile 4454 | - Gemfile.lock 4455 | - Guardfile 4456 | - Jarfile 4457 | - Mavenfile 4458 | - Podfile 4459 | - Puppetfile 4460 | - Rakefile 4461 | - Snapfile 4462 | - Thorfile 4463 | - Vagrantfile 4464 | - buildfile 4465 | language_id: 326 4466 | Rust: 4467 | type: programming 4468 | color: "#dea584" 4469 | extensions: 4470 | - ".rs" 4471 | - ".rs.in" 4472 | ace_mode: rust 4473 | codemirror_mode: rust 4474 | codemirror_mime_type: text/x-rustsrc 4475 | language_id: 327 4476 | SAS: 4477 | type: programming 4478 | color: "#B34936" 4479 | extensions: 4480 | - ".sas" 4481 | tm_scope: source.sas 4482 | ace_mode: text 4483 | codemirror_mode: sas 4484 | codemirror_mime_type: text/x-sas 4485 | language_id: 328 4486 | SCSS: 4487 | type: markup 4488 | tm_scope: source.css.scss 4489 | group: CSS 4490 | ace_mode: scss 4491 | codemirror_mode: css 4492 | codemirror_mime_type: text/x-scss 4493 | extensions: 4494 | - ".scss" 4495 | language_id: 329 4496 | SMT: 4497 | type: programming 4498 | extensions: 4499 | - ".smt2" 4500 | - ".smt" 4501 | interpreters: 4502 | - boolector 4503 | - cvc4 4504 | - mathsat5 4505 | - opensmt 4506 | - smtinterpol 4507 | - smt-rat 4508 | - stp 4509 | - verit 4510 | - yices2 4511 | - z3 4512 | tm_scope: source.smt 4513 | ace_mode: text 4514 | language_id: 330 4515 | SPARQL: 4516 | type: data 4517 | tm_scope: source.sparql 4518 | ace_mode: text 4519 | codemirror_mode: sparql 4520 | codemirror_mime_type: application/sparql-query 4521 | extensions: 4522 | - ".sparql" 4523 | - ".rq" 4524 | language_id: 331 4525 | SQF: 4526 | type: programming 4527 | color: "#3F3F3F" 4528 | extensions: 4529 | - ".sqf" 4530 | - ".hqf" 4531 | tm_scope: source.sqf 4532 | ace_mode: text 4533 | language_id: 332 4534 | SQL: 4535 | type: data 4536 | tm_scope: source.sql 4537 | ace_mode: sql 4538 | codemirror_mode: sql 4539 | codemirror_mime_type: text/x-sql 4540 | extensions: 4541 | - ".sql" 4542 | - ".cql" 4543 | - ".ddl" 4544 | - ".inc" 4545 | - ".mysql" 4546 | - ".prc" 4547 | - ".tab" 4548 | - ".udf" 4549 | - ".viw" 4550 | language_id: 333 4551 | SQLPL: 4552 | type: programming 4553 | ace_mode: sql 4554 | codemirror_mode: sql 4555 | codemirror_mime_type: text/x-sql 4556 | tm_scope: source.sql 4557 | extensions: 4558 | - ".sql" 4559 | - ".db2" 4560 | language_id: 334 4561 | SRecode Template: 4562 | type: markup 4563 | color: "#348a34" 4564 | tm_scope: source.lisp 4565 | ace_mode: lisp 4566 | codemirror_mode: commonlisp 4567 | codemirror_mime_type: text/x-common-lisp 4568 | extensions: 4569 | - ".srt" 4570 | language_id: 335 4571 | SSH Config: 4572 | type: data 4573 | group: INI 4574 | filenames: 4575 | - ssh-config 4576 | - ssh_config 4577 | - sshconfig 4578 | - sshconfig.snip 4579 | - sshd-config 4580 | - sshd_config 4581 | ace_mode: text 4582 | tm_scope: source.ssh-config 4583 | language_id: 554920715 4584 | STON: 4585 | type: data 4586 | group: Smalltalk 4587 | extensions: 4588 | - ".ston" 4589 | tm_scope: source.smalltalk 4590 | ace_mode: text 4591 | language_id: 336 4592 | SVG: 4593 | type: data 4594 | extensions: 4595 | - ".svg" 4596 | tm_scope: text.xml 4597 | ace_mode: xml 4598 | codemirror_mode: xml 4599 | codemirror_mime_type: text/xml 4600 | language_id: 337 4601 | Sage: 4602 | type: programming 4603 | group: Python 4604 | extensions: 4605 | - ".sage" 4606 | - ".sagews" 4607 | tm_scope: source.python 4608 | ace_mode: python 4609 | codemirror_mode: python 4610 | codemirror_mime_type: text/x-python 4611 | language_id: 338 4612 | SaltStack: 4613 | type: programming 4614 | color: "#646464" 4615 | aliases: 4616 | - saltstate 4617 | - salt 4618 | extensions: 4619 | - ".sls" 4620 | tm_scope: source.yaml.salt 4621 | ace_mode: yaml 4622 | codemirror_mode: yaml 4623 | codemirror_mime_type: text/x-yaml 4624 | language_id: 339 4625 | Sass: 4626 | type: markup 4627 | tm_scope: source.sass 4628 | group: CSS 4629 | extensions: 4630 | - ".sass" 4631 | ace_mode: sass 4632 | codemirror_mode: sass 4633 | codemirror_mime_type: text/x-sass 4634 | language_id: 340 4635 | Scala: 4636 | type: programming 4637 | ace_mode: scala 4638 | codemirror_mode: clike 4639 | codemirror_mime_type: text/x-scala 4640 | color: "#c22d40" 4641 | extensions: 4642 | - ".scala" 4643 | - ".kojo" 4644 | - ".sbt" 4645 | - ".sc" 4646 | interpreters: 4647 | - scala 4648 | language_id: 341 4649 | Scaml: 4650 | group: HTML 4651 | type: markup 4652 | extensions: 4653 | - ".scaml" 4654 | tm_scope: source.scaml 4655 | ace_mode: text 4656 | language_id: 342 4657 | Scheme: 4658 | type: programming 4659 | color: "#1e4aec" 4660 | extensions: 4661 | - ".scm" 4662 | - ".sch" 4663 | - ".sld" 4664 | - ".sls" 4665 | - ".sps" 4666 | - ".ss" 4667 | interpreters: 4668 | - scheme 4669 | - guile 4670 | - bigloo 4671 | - chicken 4672 | - csi 4673 | - gosh 4674 | - r6rs 4675 | ace_mode: scheme 4676 | codemirror_mode: scheme 4677 | codemirror_mime_type: text/x-scheme 4678 | language_id: 343 4679 | Scilab: 4680 | type: programming 4681 | extensions: 4682 | - ".sci" 4683 | - ".sce" 4684 | - ".tst" 4685 | ace_mode: text 4686 | language_id: 344 4687 | Self: 4688 | type: programming 4689 | color: "#0579aa" 4690 | extensions: 4691 | - ".self" 4692 | tm_scope: none 4693 | ace_mode: text 4694 | language_id: 345 4695 | ShaderLab: 4696 | type: programming 4697 | extensions: 4698 | - ".shader" 4699 | ace_mode: text 4700 | tm_scope: source.shaderlab 4701 | language_id: 664257356 4702 | Shell: 4703 | type: programming 4704 | color: "#89e051" 4705 | aliases: 4706 | - sh 4707 | - shell-script 4708 | - bash 4709 | - zsh 4710 | extensions: 4711 | - ".sh" 4712 | - ".bash" 4713 | - ".bats" 4714 | - ".cgi" 4715 | - ".command" 4716 | - ".fcgi" 4717 | - ".ksh" 4718 | - ".sh.in" 4719 | - ".tmux" 4720 | - ".tool" 4721 | - ".zsh" 4722 | filenames: 4723 | - ".bash_aliases" 4724 | - ".bash_history" 4725 | - ".bash_logout" 4726 | - ".bash_profile" 4727 | - ".bashrc" 4728 | - ".cshrc" 4729 | - ".login" 4730 | - ".profile" 4731 | - ".zlogin" 4732 | - ".zlogout" 4733 | - ".zprofile" 4734 | - ".zshenv" 4735 | - ".zshrc" 4736 | - 9fs 4737 | - PKGBUILD 4738 | - bash_aliases 4739 | - bash_logout 4740 | - bash_profile 4741 | - bashrc 4742 | - cshrc 4743 | - gradlew 4744 | - login 4745 | - man 4746 | - profile 4747 | - zlogin 4748 | - zlogout 4749 | - zprofile 4750 | - zshenv 4751 | - zshrc 4752 | interpreters: 4753 | - ash 4754 | - bash 4755 | - dash 4756 | - ksh 4757 | - mksh 4758 | - pdksh 4759 | - rc 4760 | - sh 4761 | - zsh 4762 | ace_mode: sh 4763 | codemirror_mode: shell 4764 | codemirror_mime_type: text/x-sh 4765 | language_id: 346 4766 | ShellSession: 4767 | type: programming 4768 | extensions: 4769 | - ".sh-session" 4770 | aliases: 4771 | - bash session 4772 | - console 4773 | tm_scope: text.shell-session 4774 | ace_mode: sh 4775 | codemirror_mode: shell 4776 | codemirror_mime_type: text/x-sh 4777 | language_id: 347 4778 | Shen: 4779 | type: programming 4780 | color: "#120F14" 4781 | extensions: 4782 | - ".shen" 4783 | tm_scope: source.shen 4784 | ace_mode: text 4785 | language_id: 348 4786 | Slash: 4787 | type: programming 4788 | color: "#007eff" 4789 | extensions: 4790 | - ".sl" 4791 | tm_scope: text.html.slash 4792 | ace_mode: text 4793 | language_id: 349 4794 | Slice: 4795 | type: programming 4796 | color: "#003fa2" 4797 | tm_scope: source.slice 4798 | ace_mode: text 4799 | extensions: 4800 | - ".ice" 4801 | language_id: 894641667 4802 | Slim: 4803 | group: HTML 4804 | type: markup 4805 | extensions: 4806 | - ".slim" 4807 | tm_scope: text.slim 4808 | ace_mode: text 4809 | codemirror_mode: slim 4810 | codemirror_mime_type: text/x-slim 4811 | language_id: 350 4812 | Smali: 4813 | type: programming 4814 | extensions: 4815 | - ".smali" 4816 | ace_mode: text 4817 | tm_scope: source.smali 4818 | language_id: 351 4819 | Smalltalk: 4820 | type: programming 4821 | color: "#596706" 4822 | extensions: 4823 | - ".st" 4824 | - ".cs" 4825 | aliases: 4826 | - squeak 4827 | ace_mode: text 4828 | codemirror_mode: smalltalk 4829 | codemirror_mime_type: text/x-stsrc 4830 | language_id: 352 4831 | Smarty: 4832 | type: programming 4833 | extensions: 4834 | - ".tpl" 4835 | ace_mode: smarty 4836 | codemirror_mode: smarty 4837 | codemirror_mime_type: text/x-smarty 4838 | tm_scope: text.html.smarty 4839 | language_id: 353 4840 | Solidity: 4841 | type: programming 4842 | color: "#AA6746" 4843 | ace_mode: text 4844 | tm_scope: source.solidity 4845 | language_id: 237469032 4846 | SourcePawn: 4847 | type: programming 4848 | color: "#5c7611" 4849 | aliases: 4850 | - sourcemod 4851 | extensions: 4852 | - ".sp" 4853 | - ".inc" 4854 | tm_scope: source.sp 4855 | ace_mode: text 4856 | language_id: 354 4857 | Spline Font Database: 4858 | type: data 4859 | extensions: 4860 | - ".sfd" 4861 | tm_scope: text.sfd 4862 | ace_mode: yaml 4863 | language_id: 767169629 4864 | Squirrel: 4865 | type: programming 4866 | color: "#800000" 4867 | extensions: 4868 | - ".nut" 4869 | tm_scope: source.c++ 4870 | ace_mode: c_cpp 4871 | codemirror_mode: clike 4872 | codemirror_mime_type: text/x-c++src 4873 | language_id: 355 4874 | Stan: 4875 | type: programming 4876 | color: "#b2011d" 4877 | extensions: 4878 | - ".stan" 4879 | ace_mode: text 4880 | tm_scope: source.stan 4881 | language_id: 356 4882 | Standard ML: 4883 | type: programming 4884 | color: "#dc566d" 4885 | aliases: 4886 | - sml 4887 | extensions: 4888 | - ".ML" 4889 | - ".fun" 4890 | - ".sig" 4891 | - ".sml" 4892 | tm_scope: source.ml 4893 | ace_mode: text 4894 | codemirror_mode: mllike 4895 | codemirror_mime_type: text/x-ocaml 4896 | language_id: 357 4897 | Stata: 4898 | type: programming 4899 | extensions: 4900 | - ".do" 4901 | - ".ado" 4902 | - ".doh" 4903 | - ".ihlp" 4904 | - ".mata" 4905 | - ".matah" 4906 | - ".sthlp" 4907 | ace_mode: text 4908 | language_id: 358 4909 | Stylus: 4910 | type: markup 4911 | group: CSS 4912 | extensions: 4913 | - ".styl" 4914 | tm_scope: source.stylus 4915 | ace_mode: stylus 4916 | language_id: 359 4917 | SubRip Text: 4918 | type: data 4919 | extensions: 4920 | - ".srt" 4921 | ace_mode: text 4922 | tm_scope: text.srt 4923 | language_id: 360 4924 | SugarSS: 4925 | type: markup 4926 | tm_scope: source.css.postcss.sugarss 4927 | group: CSS 4928 | extensions: 4929 | - ".sss" 4930 | ace_mode: text 4931 | language_id: 826404698 4932 | SuperCollider: 4933 | type: programming 4934 | color: "#46390b" 4935 | extensions: 4936 | - ".sc" 4937 | - ".scd" 4938 | interpreters: 4939 | - sclang 4940 | - scsynth 4941 | tm_scope: source.supercollider 4942 | ace_mode: text 4943 | language_id: 361 4944 | Svelte: 4945 | type: markup 4946 | tm_scope: source.svelte 4947 | group: HTML 4948 | ace_mode: html 4949 | codemirror_mode: htmlmixed 4950 | codemirror_mime_type: text/html 4951 | extensions: 4952 | - ".svelte" 4953 | language_id: 928734530 4954 | Swift: 4955 | type: programming 4956 | color: "#ffac45" 4957 | extensions: 4958 | - ".swift" 4959 | ace_mode: text 4960 | codemirror_mode: swift 4961 | codemirror_mime_type: text/x-swift 4962 | language_id: 362 4963 | SystemVerilog: 4964 | type: programming 4965 | color: "#DAE1C2" 4966 | extensions: 4967 | - ".sv" 4968 | - ".svh" 4969 | - ".vh" 4970 | ace_mode: verilog 4971 | codemirror_mode: verilog 4972 | codemirror_mime_type: text/x-systemverilog 4973 | language_id: 363 4974 | TI Program: 4975 | type: programming 4976 | ace_mode: text 4977 | color: "#A0AA87" 4978 | extensions: 4979 | - ".8xp" 4980 | - ".8xk" 4981 | - ".8xk.txt" 4982 | - ".8xp.txt" 4983 | language_id: 422 4984 | tm_scope: none 4985 | TLA: 4986 | type: programming 4987 | extensions: 4988 | - ".tla" 4989 | tm_scope: source.tla 4990 | ace_mode: text 4991 | language_id: 364 4992 | TOML: 4993 | type: data 4994 | extensions: 4995 | - ".toml" 4996 | filenames: 4997 | - Cargo.lock 4998 | - Gopkg.lock 4999 | tm_scope: source.toml 5000 | ace_mode: toml 5001 | codemirror_mode: toml 5002 | codemirror_mime_type: text/x-toml 5003 | language_id: 365 5004 | TSQL: 5005 | type: programming 5006 | extensions: 5007 | - ".sql" 5008 | ace_mode: sql 5009 | tm_scope: source.tsql 5010 | language_id: 918334941 5011 | TSX: 5012 | type: programming 5013 | group: TypeScript 5014 | extensions: 5015 | - ".tsx" 5016 | tm_scope: source.tsx 5017 | ace_mode: javascript 5018 | codemirror_mode: jsx 5019 | codemirror_mime_type: text/jsx 5020 | language_id: 94901924 5021 | TXL: 5022 | type: programming 5023 | extensions: 5024 | - ".txl" 5025 | tm_scope: source.txl 5026 | ace_mode: text 5027 | language_id: 366 5028 | Tcl: 5029 | type: programming 5030 | color: "#e4cc98" 5031 | extensions: 5032 | - ".tcl" 5033 | - ".adp" 5034 | - ".tm" 5035 | filenames: 5036 | - owh 5037 | - starfield 5038 | interpreters: 5039 | - tclsh 5040 | - wish 5041 | ace_mode: tcl 5042 | codemirror_mode: tcl 5043 | codemirror_mime_type: text/x-tcl 5044 | language_id: 367 5045 | Tcsh: 5046 | type: programming 5047 | group: Shell 5048 | extensions: 5049 | - ".tcsh" 5050 | - ".csh" 5051 | tm_scope: source.shell 5052 | ace_mode: sh 5053 | codemirror_mode: shell 5054 | codemirror_mime_type: text/x-sh 5055 | language_id: 368 5056 | TeX: 5057 | type: markup 5058 | color: "#3D6117" 5059 | ace_mode: tex 5060 | codemirror_mode: stex 5061 | codemirror_mime_type: text/x-stex 5062 | wrap: true 5063 | aliases: 5064 | - latex 5065 | extensions: 5066 | - ".tex" 5067 | - ".aux" 5068 | - ".bbx" 5069 | - ".bib" 5070 | - ".cbx" 5071 | - ".cls" 5072 | - ".dtx" 5073 | - ".ins" 5074 | - ".lbx" 5075 | - ".ltx" 5076 | - ".mkii" 5077 | - ".mkiv" 5078 | - ".mkvi" 5079 | - ".sty" 5080 | - ".toc" 5081 | language_id: 369 5082 | Tea: 5083 | type: markup 5084 | extensions: 5085 | - ".tea" 5086 | tm_scope: source.tea 5087 | ace_mode: text 5088 | language_id: 370 5089 | Terra: 5090 | type: programming 5091 | extensions: 5092 | - ".t" 5093 | color: "#00004c" 5094 | ace_mode: lua 5095 | codemirror_mode: lua 5096 | codemirror_mime_type: text/x-lua 5097 | interpreters: 5098 | - lua 5099 | language_id: 371 5100 | Text: 5101 | type: prose 5102 | wrap: true 5103 | aliases: 5104 | - fundamental 5105 | extensions: 5106 | - ".txt" 5107 | - ".fr" 5108 | - ".nb" 5109 | - ".ncl" 5110 | - ".no" 5111 | filenames: 5112 | - COPYING 5113 | - COPYING.regex 5114 | - COPYRIGHT.regex 5115 | - FONTLOG 5116 | - INSTALL 5117 | - INSTALL.mysql 5118 | - LICENSE 5119 | - LICENSE.mysql 5120 | - NEWS 5121 | - README.1ST 5122 | - README.me 5123 | - README.mysql 5124 | - click.me 5125 | - delete.me 5126 | - go.mod 5127 | - go.sum 5128 | - keep.me 5129 | - read.me 5130 | - readme.1st 5131 | - test.me 5132 | tm_scope: none 5133 | ace_mode: text 5134 | language_id: 372 5135 | Textile: 5136 | type: prose 5137 | ace_mode: textile 5138 | codemirror_mode: textile 5139 | codemirror_mime_type: text/x-textile 5140 | wrap: true 5141 | extensions: 5142 | - ".textile" 5143 | tm_scope: none 5144 | language_id: 373 5145 | Thrift: 5146 | type: programming 5147 | tm_scope: source.thrift 5148 | extensions: 5149 | - ".thrift" 5150 | ace_mode: text 5151 | language_id: 374 5152 | Turing: 5153 | type: programming 5154 | color: "#cf142b" 5155 | extensions: 5156 | - ".t" 5157 | - ".tu" 5158 | tm_scope: source.turing 5159 | ace_mode: text 5160 | language_id: 375 5161 | Turtle: 5162 | type: data 5163 | extensions: 5164 | - ".ttl" 5165 | tm_scope: source.turtle 5166 | ace_mode: text 5167 | codemirror_mode: turtle 5168 | codemirror_mime_type: text/turtle 5169 | language_id: 376 5170 | Twig: 5171 | type: markup 5172 | group: HTML 5173 | extensions: 5174 | - ".twig" 5175 | tm_scope: text.html.twig 5176 | ace_mode: twig 5177 | codemirror_mode: twig 5178 | codemirror_mime_type: text/x-twig 5179 | language_id: 377 5180 | Type Language: 5181 | type: data 5182 | aliases: 5183 | - tl 5184 | extensions: 5185 | - ".tl" 5186 | tm_scope: source.tl 5187 | ace_mode: text 5188 | language_id: 632765617 5189 | TypeScript: 5190 | type: programming 5191 | color: "#2b7489" 5192 | aliases: 5193 | - ts 5194 | interpreters: 5195 | - deno 5196 | - ts-node 5197 | extensions: 5198 | - ".ts" 5199 | tm_scope: source.ts 5200 | ace_mode: typescript 5201 | codemirror_mode: javascript 5202 | codemirror_mime_type: application/typescript 5203 | language_id: 378 5204 | Unified Parallel C: 5205 | type: programming 5206 | group: C 5207 | ace_mode: c_cpp 5208 | codemirror_mode: clike 5209 | codemirror_mime_type: text/x-csrc 5210 | extensions: 5211 | - ".upc" 5212 | tm_scope: source.c 5213 | language_id: 379 5214 | Unity3D Asset: 5215 | type: data 5216 | ace_mode: yaml 5217 | codemirror_mode: yaml 5218 | codemirror_mime_type: text/x-yaml 5219 | extensions: 5220 | - ".anim" 5221 | - ".asset" 5222 | - ".mat" 5223 | - ".meta" 5224 | - ".prefab" 5225 | - ".unity" 5226 | tm_scope: source.yaml 5227 | language_id: 380 5228 | Unix Assembly: 5229 | type: programming 5230 | group: Assembly 5231 | extensions: 5232 | - ".s" 5233 | - ".ms" 5234 | tm_scope: source.x86 5235 | ace_mode: assembly_x86 5236 | language_id: 120 5237 | Uno: 5238 | type: programming 5239 | extensions: 5240 | - ".uno" 5241 | ace_mode: csharp 5242 | codemirror_mode: clike 5243 | codemirror_mime_type: text/x-csharp 5244 | tm_scope: source.cs 5245 | language_id: 381 5246 | UnrealScript: 5247 | type: programming 5248 | color: "#a54c4d" 5249 | extensions: 5250 | - ".uc" 5251 | tm_scope: source.java 5252 | ace_mode: java 5253 | codemirror_mode: clike 5254 | codemirror_mime_type: text/x-java 5255 | language_id: 382 5256 | UrWeb: 5257 | type: programming 5258 | aliases: 5259 | - Ur/Web 5260 | - Ur 5261 | extensions: 5262 | - ".ur" 5263 | - ".urs" 5264 | tm_scope: source.ur 5265 | ace_mode: text 5266 | language_id: 383 5267 | VCL: 5268 | type: programming 5269 | color: "#148AA8" 5270 | extensions: 5271 | - ".vcl" 5272 | tm_scope: source.varnish.vcl 5273 | ace_mode: text 5274 | language_id: 384 5275 | VHDL: 5276 | type: programming 5277 | color: "#adb2cb" 5278 | extensions: 5279 | - ".vhdl" 5280 | - ".vhd" 5281 | - ".vhf" 5282 | - ".vhi" 5283 | - ".vho" 5284 | - ".vhs" 5285 | - ".vht" 5286 | - ".vhw" 5287 | ace_mode: vhdl 5288 | codemirror_mode: vhdl 5289 | codemirror_mime_type: text/x-vhdl 5290 | language_id: 385 5291 | Vala: 5292 | type: programming 5293 | color: "#fbe5cd" 5294 | extensions: 5295 | - ".vala" 5296 | - ".vapi" 5297 | ace_mode: vala 5298 | language_id: 386 5299 | Verilog: 5300 | type: programming 5301 | color: "#b2b7f8" 5302 | extensions: 5303 | - ".v" 5304 | - ".veo" 5305 | ace_mode: verilog 5306 | codemirror_mode: verilog 5307 | codemirror_mime_type: text/x-verilog 5308 | language_id: 387 5309 | Vim script: 5310 | type: programming 5311 | color: "#199f4b" 5312 | tm_scope: source.viml 5313 | aliases: 5314 | - vim 5315 | - viml 5316 | - nvim 5317 | extensions: 5318 | - ".vim" 5319 | - ".vba" 5320 | - ".vmb" 5321 | filenames: 5322 | - ".gvimrc" 5323 | - ".nvimrc" 5324 | - ".vimrc" 5325 | - _vimrc 5326 | - gvimrc 5327 | - nvimrc 5328 | - vimrc 5329 | ace_mode: text 5330 | language_id: 388 5331 | Visual Basic: 5332 | type: programming 5333 | color: "#945db7" 5334 | extensions: 5335 | - ".vb" 5336 | - ".bas" 5337 | - ".cls" 5338 | - ".frm" 5339 | - ".frx" 5340 | - ".vba" 5341 | - ".vbhtml" 5342 | - ".vbs" 5343 | tm_scope: source.vbnet 5344 | aliases: 5345 | - vb.net 5346 | - vbnet 5347 | ace_mode: text 5348 | codemirror_mode: vb 5349 | codemirror_mime_type: text/x-vb 5350 | language_id: 389 5351 | Volt: 5352 | type: programming 5353 | color: "#1F1F1F" 5354 | extensions: 5355 | - ".volt" 5356 | tm_scope: source.d 5357 | ace_mode: d 5358 | codemirror_mode: d 5359 | codemirror_mime_type: text/x-d 5360 | language_id: 390 5361 | Vue: 5362 | type: markup 5363 | color: "#2c3e50" 5364 | extensions: 5365 | - ".vue" 5366 | tm_scope: text.html.vue 5367 | ace_mode: html 5368 | language_id: 391 5369 | Wavefront Material: 5370 | type: data 5371 | extensions: 5372 | - ".mtl" 5373 | tm_scope: source.wavefront.mtl 5374 | ace_mode: text 5375 | language_id: 392 5376 | Wavefront Object: 5377 | type: data 5378 | extensions: 5379 | - ".obj" 5380 | tm_scope: source.wavefront.obj 5381 | ace_mode: text 5382 | language_id: 393 5383 | Web Ontology Language: 5384 | type: data 5385 | extensions: 5386 | - ".owl" 5387 | tm_scope: text.xml 5388 | ace_mode: xml 5389 | language_id: 394 5390 | WebAssembly: 5391 | type: programming 5392 | color: "#04133b" 5393 | extensions: 5394 | - ".wast" 5395 | - ".wat" 5396 | aliases: 5397 | - wast 5398 | - wasm 5399 | tm_scope: source.webassembly 5400 | ace_mode: lisp 5401 | codemirror_mode: commonlisp 5402 | codemirror_mime_type: text/x-common-lisp 5403 | language_id: 956556503 5404 | WebIDL: 5405 | type: programming 5406 | extensions: 5407 | - ".webidl" 5408 | tm_scope: source.webidl 5409 | ace_mode: text 5410 | codemirror_mode: webidl 5411 | codemirror_mime_type: text/x-webidl 5412 | language_id: 395 5413 | WebVTT: 5414 | type: data 5415 | wrap: true 5416 | extensions: 5417 | - ".vtt" 5418 | tm_scope: source.vtt 5419 | ace_mode: text 5420 | language_id: 658679714 5421 | Windows Registry Entries: 5422 | type: data 5423 | extensions: 5424 | - ".reg" 5425 | tm_scope: source.reg 5426 | ace_mode: ini 5427 | codemirror_mode: properties 5428 | codemirror_mime_type: text/x-properties 5429 | language_id: 969674868 5430 | Wollok: 5431 | type: programming 5432 | color: "#a23738" 5433 | extensions: 5434 | - ".wlk" 5435 | ace_mode: text 5436 | tm_scope: source.wollok 5437 | language_id: 632745969 5438 | World of Warcraft Addon Data: 5439 | type: data 5440 | extensions: 5441 | - ".toc" 5442 | tm_scope: source.toc 5443 | ace_mode: text 5444 | language_id: 396 5445 | X BitMap: 5446 | type: data 5447 | group: C 5448 | aliases: 5449 | - xbm 5450 | extensions: 5451 | - ".xbm" 5452 | ace_mode: c_cpp 5453 | tm_scope: source.c 5454 | codemirror_mode: clike 5455 | codemirror_mime_type: text/x-csrc 5456 | language_id: 782911107 5457 | X Font Directory Index: 5458 | type: data 5459 | filenames: 5460 | - encodings.dir 5461 | - fonts.alias 5462 | - fonts.dir 5463 | - fonts.scale 5464 | tm_scope: source.fontdir 5465 | ace_mode: text 5466 | language_id: 208700028 5467 | X PixMap: 5468 | type: data 5469 | group: C 5470 | aliases: 5471 | - xpm 5472 | extensions: 5473 | - ".xpm" 5474 | - ".pm" 5475 | ace_mode: c_cpp 5476 | tm_scope: source.c 5477 | codemirror_mode: clike 5478 | codemirror_mime_type: text/x-csrc 5479 | language_id: 781846279 5480 | X10: 5481 | type: programming 5482 | aliases: 5483 | - xten 5484 | ace_mode: text 5485 | extensions: 5486 | - ".x10" 5487 | color: "#4B6BEF" 5488 | tm_scope: source.x10 5489 | language_id: 397 5490 | XC: 5491 | type: programming 5492 | color: "#99DA07" 5493 | extensions: 5494 | - ".xc" 5495 | tm_scope: source.xc 5496 | ace_mode: c_cpp 5497 | codemirror_mode: clike 5498 | codemirror_mime_type: text/x-csrc 5499 | language_id: 398 5500 | XCompose: 5501 | type: data 5502 | filenames: 5503 | - ".XCompose" 5504 | - XCompose 5505 | - xcompose 5506 | tm_scope: config.xcompose 5507 | ace_mode: text 5508 | language_id: 225167241 5509 | XML: 5510 | type: data 5511 | ace_mode: xml 5512 | codemirror_mode: xml 5513 | codemirror_mime_type: text/xml 5514 | aliases: 5515 | - rss 5516 | - xsd 5517 | - wsdl 5518 | extensions: 5519 | - ".xml" 5520 | - ".adml" 5521 | - ".admx" 5522 | - ".ant" 5523 | - ".axml" 5524 | - ".builds" 5525 | - ".ccproj" 5526 | - ".ccxml" 5527 | - ".clixml" 5528 | - ".cproject" 5529 | - ".cscfg" 5530 | - ".csdef" 5531 | - ".csl" 5532 | - ".csproj" 5533 | - ".ct" 5534 | - ".depproj" 5535 | - ".dita" 5536 | - ".ditamap" 5537 | - ".ditaval" 5538 | - ".dll.config" 5539 | - ".dotsettings" 5540 | - ".filters" 5541 | - ".fsproj" 5542 | - ".fxml" 5543 | - ".glade" 5544 | - ".gml" 5545 | - ".gmx" 5546 | - ".grxml" 5547 | - ".iml" 5548 | - ".ivy" 5549 | - ".jelly" 5550 | - ".jsproj" 5551 | - ".kml" 5552 | - ".launch" 5553 | - ".mdpolicy" 5554 | - ".mjml" 5555 | - ".mm" 5556 | - ".mod" 5557 | - ".mxml" 5558 | - ".natvis" 5559 | - ".ncl" 5560 | - ".ndproj" 5561 | - ".nproj" 5562 | - ".nuspec" 5563 | - ".odd" 5564 | - ".osm" 5565 | - ".pkgproj" 5566 | - ".plist" 5567 | - ".pluginspec" 5568 | - ".proj" 5569 | - ".props" 5570 | - ".ps1xml" 5571 | - ".psc1" 5572 | - ".pt" 5573 | - ".rdf" 5574 | - ".resx" 5575 | - ".rss" 5576 | - ".sch" 5577 | - ".scxml" 5578 | - ".sfproj" 5579 | - ".shproj" 5580 | - ".srdf" 5581 | - ".storyboard" 5582 | - ".stTheme" 5583 | - ".sublime-snippet" 5584 | - ".targets" 5585 | - ".tmCommand" 5586 | - ".tml" 5587 | - ".tmLanguage" 5588 | - ".tmPreferences" 5589 | - ".tmSnippet" 5590 | - ".tmTheme" 5591 | - ".ts" 5592 | - ".tsx" 5593 | - ".ui" 5594 | - ".urdf" 5595 | - ".ux" 5596 | - ".vbproj" 5597 | - ".vcxproj" 5598 | - ".vsixmanifest" 5599 | - ".vssettings" 5600 | - ".vstemplate" 5601 | - ".vxml" 5602 | - ".wixproj" 5603 | - ".workflow" 5604 | - ".wsdl" 5605 | - ".wsf" 5606 | - ".wxi" 5607 | - ".wxl" 5608 | - ".wxs" 5609 | - ".x3d" 5610 | - ".xacro" 5611 | - ".xaml" 5612 | - ".xib" 5613 | - ".xlf" 5614 | - ".xliff" 5615 | - ".xmi" 5616 | - ".xml.dist" 5617 | - ".xproj" 5618 | - ".xsd" 5619 | - ".xspec" 5620 | - ".xul" 5621 | - ".zcml" 5622 | filenames: 5623 | - ".classpath" 5624 | - ".cproject" 5625 | - ".project" 5626 | - App.config 5627 | - NuGet.config 5628 | - Settings.StyleCop 5629 | - Web.Debug.config 5630 | - Web.Release.config 5631 | - Web.config 5632 | - packages.config 5633 | language_id: 399 5634 | XPages: 5635 | type: data 5636 | extensions: 5637 | - ".xsp-config" 5638 | - ".xsp.metadata" 5639 | tm_scope: text.xml 5640 | ace_mode: xml 5641 | codemirror_mode: xml 5642 | codemirror_mime_type: text/xml 5643 | language_id: 400 5644 | XProc: 5645 | type: programming 5646 | extensions: 5647 | - ".xpl" 5648 | - ".xproc" 5649 | tm_scope: text.xml 5650 | ace_mode: xml 5651 | codemirror_mode: xml 5652 | codemirror_mime_type: text/xml 5653 | language_id: 401 5654 | XQuery: 5655 | type: programming 5656 | color: "#5232e7" 5657 | extensions: 5658 | - ".xquery" 5659 | - ".xq" 5660 | - ".xql" 5661 | - ".xqm" 5662 | - ".xqy" 5663 | ace_mode: xquery 5664 | codemirror_mode: xquery 5665 | codemirror_mime_type: application/xquery 5666 | tm_scope: source.xq 5667 | language_id: 402 5668 | XS: 5669 | type: programming 5670 | extensions: 5671 | - ".xs" 5672 | tm_scope: source.c 5673 | ace_mode: c_cpp 5674 | codemirror_mode: clike 5675 | codemirror_mime_type: text/x-csrc 5676 | language_id: 403 5677 | XSLT: 5678 | type: programming 5679 | aliases: 5680 | - xsl 5681 | extensions: 5682 | - ".xslt" 5683 | - ".xsl" 5684 | tm_scope: text.xml.xsl 5685 | ace_mode: xml 5686 | codemirror_mode: xml 5687 | codemirror_mime_type: text/xml 5688 | color: "#EB8CEB" 5689 | language_id: 404 5690 | Xojo: 5691 | type: programming 5692 | extensions: 5693 | - ".xojo_code" 5694 | - ".xojo_menu" 5695 | - ".xojo_report" 5696 | - ".xojo_script" 5697 | - ".xojo_toolbar" 5698 | - ".xojo_window" 5699 | tm_scope: source.xojo 5700 | ace_mode: text 5701 | language_id: 405 5702 | Xtend: 5703 | type: programming 5704 | extensions: 5705 | - ".xtend" 5706 | ace_mode: text 5707 | language_id: 406 5708 | YAML: 5709 | type: data 5710 | tm_scope: source.yaml 5711 | aliases: 5712 | - yml 5713 | extensions: 5714 | - ".yml" 5715 | - ".mir" 5716 | - ".reek" 5717 | - ".rviz" 5718 | - ".sublime-syntax" 5719 | - ".syntax" 5720 | - ".yaml" 5721 | - ".yaml-tmlanguage" 5722 | - ".yml.mysql" 5723 | filenames: 5724 | - ".clang-format" 5725 | - ".clang-tidy" 5726 | - ".gemrc" 5727 | - glide.lock 5728 | ace_mode: yaml 5729 | codemirror_mode: yaml 5730 | codemirror_mime_type: text/x-yaml 5731 | language_id: 407 5732 | YANG: 5733 | type: data 5734 | extensions: 5735 | - ".yang" 5736 | tm_scope: source.yang 5737 | ace_mode: text 5738 | language_id: 408 5739 | YARA: 5740 | type: programming 5741 | color: "#220000" 5742 | ace_mode: text 5743 | extensions: 5744 | - ".yar" 5745 | - ".yara" 5746 | tm_scope: source.yara 5747 | language_id: 805122868 5748 | YASnippet: 5749 | type: markup 5750 | aliases: 5751 | - snippet 5752 | - yas 5753 | color: "#32AB90" 5754 | extensions: 5755 | - ".yasnippet" 5756 | tm_scope: source.yasnippet 5757 | ace_mode: text 5758 | language_id: 378760102 5759 | Yacc: 5760 | type: programming 5761 | extensions: 5762 | - ".y" 5763 | - ".yacc" 5764 | - ".yy" 5765 | tm_scope: source.bison 5766 | ace_mode: text 5767 | color: "#4B6C4B" 5768 | language_id: 409 5769 | ZAP: 5770 | type: programming 5771 | color: "#0d665e" 5772 | extensions: 5773 | - ".zap" 5774 | - ".xzap" 5775 | tm_scope: source.zap 5776 | ace_mode: text 5777 | language_id: 952972794 5778 | ZIL: 5779 | type: programming 5780 | color: "#dc75e5" 5781 | extensions: 5782 | - ".zil" 5783 | - ".mud" 5784 | tm_scope: source.zil 5785 | ace_mode: text 5786 | language_id: 973483626 5787 | Zeek: 5788 | type: programming 5789 | aliases: 5790 | - bro 5791 | extensions: 5792 | - ".zeek" 5793 | - ".bro" 5794 | tm_scope: source.zeek 5795 | ace_mode: text 5796 | language_id: 40 5797 | ZenScript: 5798 | type: programming 5799 | color: "#00BCD1" 5800 | extensions: 5801 | - ".zs" 5802 | tm_scope: source.zenscript 5803 | ace_mode: text 5804 | language_id: 494938890 5805 | Zephir: 5806 | type: programming 5807 | color: "#118f9e" 5808 | extensions: 5809 | - ".zep" 5810 | tm_scope: source.php.zephir 5811 | ace_mode: php 5812 | language_id: 410 5813 | Zig: 5814 | type: programming 5815 | color: "#ec915c" 5816 | extensions: 5817 | - ".zig" 5818 | tm_scope: source.zig 5819 | ace_mode: text 5820 | language_id: 646424281 5821 | Zimpl: 5822 | type: programming 5823 | extensions: 5824 | - ".zimpl" 5825 | - ".zmpl" 5826 | - ".zpl" 5827 | tm_scope: none 5828 | ace_mode: text 5829 | language_id: 411 5830 | desktop: 5831 | type: data 5832 | extensions: 5833 | - ".desktop" 5834 | - ".desktop.in" 5835 | tm_scope: source.desktop 5836 | ace_mode: text 5837 | language_id: 412 5838 | eC: 5839 | type: programming 5840 | color: "#913960" 5841 | extensions: 5842 | - ".ec" 5843 | - ".eh" 5844 | tm_scope: source.c.ec 5845 | ace_mode: text 5846 | language_id: 413 5847 | edn: 5848 | type: data 5849 | ace_mode: clojure 5850 | codemirror_mode: clojure 5851 | codemirror_mime_type: text/x-clojure 5852 | extensions: 5853 | - ".edn" 5854 | tm_scope: source.clojure 5855 | language_id: 414 5856 | fish: 5857 | type: programming 5858 | group: Shell 5859 | interpreters: 5860 | - fish 5861 | extensions: 5862 | - ".fish" 5863 | tm_scope: source.fish 5864 | ace_mode: text 5865 | language_id: 415 5866 | mcfunction: 5867 | type: programming 5868 | color: "#E22837" 5869 | extensions: 5870 | - ".mcfunction" 5871 | tm_scope: source.mcfunction 5872 | ace_mode: text 5873 | language_id: 462488745 5874 | mupad: 5875 | type: programming 5876 | extensions: 5877 | - ".mu" 5878 | ace_mode: text 5879 | language_id: 416 5880 | nanorc: 5881 | type: data 5882 | group: INI 5883 | extensions: 5884 | - ".nanorc" 5885 | filenames: 5886 | - ".nanorc" 5887 | - nanorc 5888 | tm_scope: source.nanorc 5889 | ace_mode: text 5890 | language_id: 775996197 5891 | nesC: 5892 | type: programming 5893 | color: "#94B0C7" 5894 | extensions: 5895 | - ".nc" 5896 | ace_mode: text 5897 | tm_scope: source.nesc 5898 | language_id: 417 5899 | ooc: 5900 | type: programming 5901 | color: "#b0b77e" 5902 | extensions: 5903 | - ".ooc" 5904 | ace_mode: text 5905 | language_id: 418 5906 | q: 5907 | type: programming 5908 | extensions: 5909 | - ".q" 5910 | tm_scope: source.q 5911 | ace_mode: text 5912 | color: "#0040cd" 5913 | language_id: 970539067 5914 | reStructuredText: 5915 | type: prose 5916 | wrap: true 5917 | aliases: 5918 | - rst 5919 | extensions: 5920 | - ".rst" 5921 | - ".rest" 5922 | - ".rest.txt" 5923 | - ".rst.txt" 5924 | ace_mode: text 5925 | codemirror_mode: rst 5926 | codemirror_mime_type: text/x-rst 5927 | language_id: 419 5928 | sed: 5929 | type: programming 5930 | color: "#64b970" 5931 | extensions: 5932 | - ".sed" 5933 | interpreters: 5934 | - gsed 5935 | - minised 5936 | - sed 5937 | - ssed 5938 | ace_mode: text 5939 | tm_scope: source.sed 5940 | language_id: 847830017 5941 | wdl: 5942 | type: programming 5943 | color: "#42f1f4" 5944 | extensions: 5945 | - ".wdl" 5946 | tm_scope: source.wdl 5947 | ace_mode: text 5948 | language_id: 374521672 5949 | wisp: 5950 | type: programming 5951 | ace_mode: clojure 5952 | codemirror_mode: clojure 5953 | codemirror_mime_type: text/x-clojure 5954 | color: "#7582D1" 5955 | extensions: 5956 | - ".wisp" 5957 | tm_scope: source.clojure 5958 | language_id: 420 5959 | xBase: 5960 | type: programming 5961 | color: "#403a40" 5962 | aliases: 5963 | - advpl 5964 | - clipper 5965 | - foxpro 5966 | extensions: 5967 | - ".prg" 5968 | - ".ch" 5969 | - ".prw" 5970 | tm_scope: source.harbour 5971 | ace_mode: text 5972 | language_id: 421 5973 | -------------------------------------------------------------------------------- /src/visualization.js: -------------------------------------------------------------------------------- 1 | import 'babel-polyfill' // ReferenceError: regeneratorRuntime is not defined 2 | 3 | import { convertFilesToTree, Graph } from './graph-helper' 4 | 5 | function timer (ms) { 6 | return new Promise(resolve => setTimeout(resolve, ms)) 7 | } 8 | 9 | // parsing 10 | const gitWorker = new Worker('git-handler.js') 11 | 12 | gitWorker.onmessage = e => { 13 | if (e.data.type === 'result') { 14 | buildNetwork(e.data.data, e.data.state) 15 | } else if (e.data.type === 'progress') { 16 | document.getElementById('progress').textContent = e.data.text 17 | } else { 18 | console.log('Unknown data:', e.data) 19 | } 20 | } 21 | 22 | function buildNetwork (data, state) { 23 | Promise.all(data.map(async entry => { 24 | return { 25 | commit: entry['commit'], 26 | tree: await convertFilesToTree( 27 | entry['files'].filter(e => e.type !== 'remove')), 28 | changedFiles: entry['files'].filter(e => e.type === 'modify') 29 | } 30 | })).then(data => render(data, state)) 31 | } 32 | 33 | function render (data, state) { 34 | console.log(data, state) 35 | console.log('Creating graph') 36 | document.getElementById('header').textContent = `${state.repoUrl} @ ${state.gitBranch}` 37 | 38 | // setup network 39 | let g = new Graph() 40 | console.log(g) 41 | 42 | // construct graph for first commit 43 | let cur = data.shift() 44 | g.addNodes(cur.tree.nodes) 45 | g.addEdges(cur.tree.edges) 46 | 47 | g.render() 48 | 49 | store.commit('addCommit', cur.commit) 50 | 51 | // iterate over following commits 52 | let delay = state.iterationDuration 53 | const iterate = async () => { 54 | await timer(delay) 55 | for (let cur of data) { 56 | console.log(cur.commit.oid) 57 | store.commit('addCommit', cur.commit) 58 | 59 | // change state of graph 60 | let [somethingChanged, addedNodes] = g.changeState(cur.tree.nodes, cur.tree.edges) 61 | 62 | // restart layout 63 | if (somethingChanged) { 64 | g.render() 65 | } 66 | 67 | // highlight changes 68 | for (let n of addedNodes) { 69 | g.blinkColor(n.id, 'red', state.iterationDuration) 70 | } 71 | for (let file of cur.changedFiles) { 72 | g.blinkColor(file.path, 'red', state.iterationDuration) 73 | } 74 | 75 | await timer(delay) 76 | } 77 | } 78 | iterate() 79 | } 80 | 81 | var store // weird global variable to access state of GUI 82 | export function createVisualization (localStore) { 83 | // TODO: how to properly pass store? Webworkers make things difficult... 84 | store = localStore 85 | 86 | let state = store.state.config 87 | console.log('State:', store.state.config) 88 | gitWorker.postMessage(state) 89 | } 90 | -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | theme: { 3 | extend: {} 4 | }, 5 | variants: {}, 6 | plugins: [] 7 | } 8 | --------------------------------------------------------------------------------