(defun require-package (package &optional min-version no-refresh)
  "Install PACKAGE with optional MIN-VERSION.
  If NO-REFRESH is non NIL, the available package list will not be refreshed."
  (if (package-installed-p package min-version)
      t
    (if (or (assoc package package-archive-contents) no-refresh)
        (package-install package)
      (package-refresh-contents)
      (package-install package))))

(require-package 'mmm-mode)
(require 'mmm-mode)

(setq mmm-global-mode 'maybe)

(define-derived-mode lcp-mode lisp-mode "LCP" "Mode for editing LCP files at Memgraph."
  (setq mmm-submode-decoration-level 0))

(mmm-add-classes '((lcp-c++ :submode c-mode ; c++-mode is buggy
                            :front "#>cpp" :back "cpp<#")))
(mmm-add-mode-ext-class 'lcp-mode nil 'lcp-c++)

(add-to-list 'auto-mode-alist '("\\.lcp\\'" . lcp-mode))

(provide 'lcp-mode)