Bad-ptr / persp-mode.el

named perspectives(set of buffers/window configs) for emacs
394 stars 44 forks source link

vue-mode using mmm-mode has some issue with persp-mode #118

Open jjpark78 opened 3 years ago

jjpark78 commented 3 years ago

vue-mode.el use mmm-mode and it change sub-mode to major-mode

ex) if i edit XXXX.vue file with vue-mode when cursor is inside of template region, major-mode changes to pug, jade, html or something else when cursor is inside of script region, major mode change to javascript for typescript when cursor is inside of style region, major mode changes to css, scss, sylus..

i thinks this is how mmm-mode is works.

the problem is when i store sessions with persp-mode buffer treated as a sub-mode (like typescript, javascript, pug, css) not a just "vue-mode"

ex)

    (def-buffer "SearchInfoRow.vue" "/Users/jjpark78/Development/JJSOFT/donna/DONNA-WEB/src/components/search/SearchInfoRow.vue" typescript-mode)

cause of cursor is inside of typescript section when save session SearchInfoRow.vue buffer, it stored as a "typescript-mode" not a "vue-mode"

i know persp-mode custom function can handle this problem . but i dont know how. i have a zero exprience with emacs lisp.

Bad-ptr commented 3 years ago

Something like this:

    (persp-def-buffer-save/load
     :minor-mode 'vue-mode :tag-symbol 'def-vue-buffer
     :save-vars '(major-mode default-directory)
     :after-load-function #'(lambda (b &rest _)
                                (with-current-buffer b (vue-mode 1))))
Bad-ptr commented 3 years ago

Or

    (persp-def-buffer-save/load
     :minor-mode 'vue-mode :tag-symbol 'def-vue-buffer
     :save-vars '(major-mode default-directory)
     :mode-restore-function #'(lambda (_mode) (vue-mode)))
jjpark78 commented 3 years ago

Or

    (persp-def-buffer-save/load
     :minor-mode 'vue-mode :tag-symbol 'def-vue-buffer
     :save-vars '(major-mode default-directory)
     :mode-restore-function #'(lambda (_mode) (vue-mode)))

thanks. but i moved to web-mode. but i will try it