Atom package to provide syntax highlighting for the MiniZinc constraint modelling language

Romeves files that won't be used for now

-163
-11
keymaps/language-mzn.cson
··· 1 - # Keybindings require three things to be fully defined: A selector that is 2 - # matched against the focused element, the keystroke and the command to 3 - # execute. 4 - # 5 - # Below is a basic keybinding which registers on all platforms by applying to 6 - # the root workspace element. 7 - 8 - # For more detailed documentation see 9 - # https://atom.io/docs/latest/behind-atom-keymaps-in-depth 10 - 'atom-workspace': 11 - 'ctrl-alt-o': 'language-mzn:toggle'
-22
lib/language-mzn-view.coffee
··· 1 - module.exports = 2 - class LanguageMznView 3 - constructor: (serializedState) -> 4 - # Create root element 5 - @element = document.createElement('div') 6 - @element.classList.add('language-mzn') 7 - 8 - # Create message element 9 - message = document.createElement('div') 10 - message.textContent = "The LanguageMzn package is Alive! It's ALIVE!" 11 - message.classList.add('message') 12 - @element.appendChild(message) 13 - 14 - # Returns an object that can be retrieved when package is activated 15 - serialize: -> 16 - 17 - # Tear down any state and detach 18 - destroy: -> 19 - @element.remove() 20 - 21 - getElement: -> 22 - @element
-33
lib/language-mzn.coffee
··· 1 - LanguageMznView = require './language-mzn-view' 2 - {CompositeDisposable} = require 'atom' 3 - 4 - module.exports = LanguageMzn = 5 - languageMznView: null 6 - modalPanel: null 7 - subscriptions: null 8 - 9 - activate: (state) -> 10 - @languageMznView = new LanguageMznView(state.languageMznViewState) 11 - @modalPanel = atom.workspace.addModalPanel(item: @languageMznView.getElement(), visible: false) 12 - 13 - # Events subscribed to in atom's system can be easily cleaned up with a CompositeDisposable 14 - @subscriptions = new CompositeDisposable 15 - 16 - # Register command that toggles this view 17 - @subscriptions.add atom.commands.add 'atom-workspace', 'language-mzn:toggle': => @toggle() 18 - 19 - deactivate: -> 20 - @modalPanel.destroy() 21 - @subscriptions.dispose() 22 - @languageMznView.destroy() 23 - 24 - serialize: -> 25 - languageMznViewState: @languageMznView.serialize() 26 - 27 - toggle: -> 28 - console.log 'LanguageMzn was toggled!' 29 - 30 - if @modalPanel.isVisible() 31 - @modalPanel.hide() 32 - else 33 - @modalPanel.show()
-22
menus/language-mzn.cson
··· 1 - # See https://atom.io/docs/latest/hacking-atom-package-word-count#menus for more details 2 - 'context-menu': 3 - 'atom-text-editor': [ 4 - { 5 - 'label': 'Toggle language-mzn' 6 - 'command': 'language-mzn:toggle' 7 - } 8 - ] 9 - 'menu': [ 10 - { 11 - 'label': 'Packages' 12 - 'submenu': [ 13 - 'label': 'language-mzn' 14 - 'submenu': [ 15 - { 16 - 'label': 'Toggle' 17 - 'command': 'language-mzn:toggle' 18 - } 19 - ] 20 - ] 21 - } 22 - ]
-62
spec/language-mzn-spec.coffee
··· 1 - LanguageMzn = require '../lib/language-mzn' 2 - 3 - # Use the command `window:run-package-specs` (cmd-alt-ctrl-p) to run specs. 4 - # 5 - # To run a specific `it` or `describe` block add an `f` to the front (e.g. `fit` 6 - # or `fdescribe`). Remove the `f` to unfocus the block. 7 - 8 - describe "LanguageMzn", -> 9 - [workspaceElement, activationPromise] = [] 10 - 11 - beforeEach -> 12 - workspaceElement = atom.views.getView(atom.workspace) 13 - activationPromise = atom.packages.activatePackage('language-mzn') 14 - 15 - describe "when the language-mzn:toggle event is triggered", -> 16 - it "hides and shows the modal panel", -> 17 - # Before the activation event the view is not on the DOM, and no panel 18 - # has been created 19 - expect(workspaceElement.querySelector('.language-mzn')).not.toExist() 20 - 21 - # This is an activation event, triggering it will cause the package to be 22 - # activated. 23 - atom.commands.dispatch workspaceElement, 'language-mzn:toggle' 24 - 25 - waitsForPromise -> 26 - activationPromise 27 - 28 - runs -> 29 - expect(workspaceElement.querySelector('.language-mzn')).toExist() 30 - 31 - languageMznElement = workspaceElement.querySelector('.language-mzn') 32 - expect(languageMznElement).toExist() 33 - 34 - languageMznPanel = atom.workspace.panelForItem(languageMznElement) 35 - expect(languageMznPanel.isVisible()).toBe true 36 - atom.commands.dispatch workspaceElement, 'language-mzn:toggle' 37 - expect(languageMznPanel.isVisible()).toBe false 38 - 39 - it "hides and shows the view", -> 40 - # This test shows you an integration test testing at the view level. 41 - 42 - # Attaching the workspaceElement to the DOM is required to allow the 43 - # `toBeVisible()` matchers to work. Anything testing visibility or focus 44 - # requires that the workspaceElement is on the DOM. Tests that attach the 45 - # workspaceElement to the DOM are generally slower than those off DOM. 46 - jasmine.attachToDOM(workspaceElement) 47 - 48 - expect(workspaceElement.querySelector('.language-mzn')).not.toExist() 49 - 50 - # This is an activation event, triggering it causes the package to be 51 - # activated. 52 - atom.commands.dispatch workspaceElement, 'language-mzn:toggle' 53 - 54 - waitsForPromise -> 55 - activationPromise 56 - 57 - runs -> 58 - # Now we can test for view visibility 59 - languageMznElement = workspaceElement.querySelector('.language-mzn') 60 - expect(languageMznElement).toBeVisible() 61 - atom.commands.dispatch workspaceElement, 'language-mzn:toggle' 62 - expect(languageMznElement).not.toBeVisible()
-5
spec/language-mzn-view-spec.coffee
··· 1 - LanguageMznView = require '../lib/language-mzn-view' 2 - 3 - describe "LanguageMznView", -> 4 - it "has one valid test", -> 5 - expect("life").toBe "easy"
-8
styles/language-mzn.less
··· 1 - // The ui-variables file is provided by base themes provided by Atom. 2 - // 3 - // See https://github.com/atom/atom-dark-ui/blob/master/styles/ui-variables.less 4 - // for a full listing of what's available. 5 - @import "ui-variables"; 6 - 7 - .language-mzn { 8 - }