diff --git a/browser/components/CodeEditor.js b/browser/components/CodeEditor.js
index b5e06a66..a6a96a74 100644
--- a/browser/components/CodeEditor.js
+++ b/browser/components/CodeEditor.js
@@ -2,6 +2,7 @@ import PropTypes from 'prop-types'
import React from 'react'
import _ from 'lodash'
import CodeMirror from 'codemirror'
+import 'codemirror-mode-elixir'
import path from 'path'
import copyImage from 'browser/main/lib/dataApi/copyImage'
import { findStorage } from 'browser/lib/findStorage'
diff --git a/browser/components/MarkdownPreview.js b/browser/components/MarkdownPreview.js
index 06354b37..c1be9ef1 100644
--- a/browser/components/MarkdownPreview.js
+++ b/browser/components/MarkdownPreview.js
@@ -3,6 +3,7 @@ import React from 'react'
import markdown from 'browser/lib/markdown'
import _ from 'lodash'
import CodeMirror from 'codemirror'
+import 'codemirror-mode-elixir'
import consts from 'browser/lib/consts'
import Raphael from 'raphael'
import flowchart from 'flowchart'
diff --git a/browser/finder/NoteDetail.js b/browser/finder/NoteDetail.js
index 4c59ea30..3b9121d7 100644
--- a/browser/finder/NoteDetail.js
+++ b/browser/finder/NoteDetail.js
@@ -5,6 +5,7 @@ import MarkdownPreview from 'browser/components/MarkdownPreview'
import MarkdownEditor from 'browser/components/MarkdownEditor'
import CodeEditor from 'browser/components/CodeEditor'
import CodeMirror from 'codemirror'
+import 'codemirror-mode-elixir'
import { findStorage } from 'browser/lib/findStorage'
const electron = require('electron')
diff --git a/browser/lib/customMeta.js b/browser/lib/customMeta.js
index 855e00af..0d4ee1e3 100644
--- a/browser/lib/customMeta.js
+++ b/browser/lib/customMeta.js
@@ -1,3 +1,5 @@
import CodeMirror from 'codemirror'
+import 'codemirror-mode-elixir'
CodeMirror.modeInfo.push({name: 'Stylus', mime: 'text/x-styl', mode: 'stylus', ext: ['styl'], alias: ['styl']})
+CodeMirror.modeInfo.push({name: 'Elixir', mime: 'text/x-elixir', mode: 'elixir', ext: ['ex']})
diff --git a/browser/main/Detail/SnippetNoteDetail.js b/browser/main/Detail/SnippetNoteDetail.js
index 5a346fc7..218b4f87 100644
--- a/browser/main/Detail/SnippetNoteDetail.js
+++ b/browser/main/Detail/SnippetNoteDetail.js
@@ -11,6 +11,7 @@ import dataApi from 'browser/main/lib/dataApi'
import { hashHistory } from 'react-router'
import ee from 'browser/main/lib/eventEmitter'
import CodeMirror from 'codemirror'
+import 'codemirror-mode-elixir'
import SnippetTab from 'browser/components/SnippetTab'
import StatusBar from '../StatusBar'
import context from 'browser/lib/context'
@@ -380,7 +381,7 @@ class SnippetNoteDetail extends React.Component {
handleModeButtonClick (e, index) {
const menu = new Menu()
- CodeMirror.modeInfo.forEach((mode) => {
+ CodeMirror.modeInfo.sort(function (a, b) { return a.name.localeCompare(b.name) }).forEach((mode) => {
menu.append(new MenuItem({
label: mode.name,
click: (e) => this.handleModeOptionClick(index, mode.name)(e)
diff --git a/browser/main/modals/PreferencesModal/UiTab.js b/browser/main/modals/PreferencesModal/UiTab.js
index a1bab45b..c79329d0 100644
--- a/browser/main/modals/PreferencesModal/UiTab.js
+++ b/browser/main/modals/PreferencesModal/UiTab.js
@@ -7,6 +7,7 @@ import store from 'browser/main/store'
import consts from 'browser/lib/consts'
import ReactCodeMirror from 'react-codemirror'
import CodeMirror from 'codemirror'
+import 'codemirror-mode-elixir'
import _ from 'lodash'
const OSX = global.process.platform === 'darwin'
diff --git a/lib/finder.html b/lib/finder.html
index f0ac3df5..c6ad502e 100644
--- a/lib/finder.html
+++ b/lib/finder.html
@@ -28,6 +28,7 @@
+
diff --git a/lib/main.html b/lib/main.html
index 69a47900..d7936628 100644
--- a/lib/main.html
+++ b/lib/main.html
@@ -69,6 +69,7 @@
+
diff --git a/package.json b/package.json
index 0b16a7ab..f38e8958 100644
--- a/package.json
+++ b/package.json
@@ -53,6 +53,7 @@
"aws-sdk": "^2.48.0",
"aws-sdk-mobile-analytics": "^0.9.2",
"codemirror": "^5.19.0",
+ "codemirror-mode-elixir": "^1.1.1",
"electron-config": "^0.2.1",
"electron-gh-releases": "^2.0.2",
"flowchart.js": "^1.6.5",