diff --git a/db/migrations/0141__add_code_note_mime_types.sql b/db/migrations/0141__add_code_note_mime_types.sql
new file mode 100644
index 000000000..55aac14b9
--- /dev/null
+++ b/db/migrations/0141__add_code_note_mime_types.sql
@@ -0,0 +1,5 @@
+INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced)
+VALUES ('codeNotesMimeTypes', '["text/x-csrc","text/x-c++src","text/x-csharp","text/css","text/x-go","text/x-groovy","text/x-haskell","text/html","message/http","text/x-java","application/javascript;env=frontend","application/javascript;env=backend","application/json","text/x-kotlin","text/x-markdown","text/x-perl","text/x-php","text/x-python","text/x-ruby",null,"text/x-sql","text/x-swift","text/xml","text/x-yaml"]', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 1);
+
+INSERT INTO sync (entityName, entityId, sourceId, utcSyncDate)
+VALUES ('options' ,'codeNotesMimeTypes', 'SYNC_FILL', '2018-01-01T00:00:00.000Z');
\ No newline at end of file
diff --git a/src/public/javascripts/dialogs/options.js b/src/public/javascripts/dialogs/options.js
index 68b62cb90..2e5b991fc 100644
--- a/src/public/javascripts/dialogs/options.js
+++ b/src/public/javascripts/dialogs/options.js
@@ -17,6 +17,7 @@ export async function showDialog() {
(await Promise.all([
import('./options/advanced.js'),
import('./options/appearance.js'),
+ import('./options/code_notes.js'),
import('./options/change_password.js'),
import('./options/note_revisions.js'),
import('./options/protected_session.js'),
diff --git a/src/public/javascripts/dialogs/options/code_notes.js b/src/public/javascripts/dialogs/options/code_notes.js
new file mode 100644
index 000000000..572e2b928
--- /dev/null
+++ b/src/public/javascripts/dialogs/options/code_notes.js
@@ -0,0 +1,44 @@
+import server from "../../services/server.js";
+import mimeTypesService from "../../services/mime_types.js";
+import optionsService from "../../services/options.js";
+
+export default class CodeNotesOptions {
+ constructor() {
+ this.$mimeTypes = $("#options-mime-types");
+ }
+
+ async optionsLoaded(options) {
+ this.$mimeTypes.empty();
+
+ let idCtr = 1;
+
+ for (const mimeType of await mimeTypesService.getMimeTypes()) {
+ const id = "code-mime-type-" + (idCtr++);
+
+ this.$mimeTypes.append($("
")
+ .append($('')
+ .attr("id", id)
+ .attr("data-mime-type", mimeType.mime)
+ .prop("checked", mimeType.enabled))
+ .change(() => this.save())
+ .append(" ")
+ .append($('