@@ 105,6 105,17 @@ ambiguous, multiple invocations will indent tabstops forward."
(indent-next-tab-stop
(save-excursion (back-to-indentation) (current-column)) t)))
+(defun fsharp-mode-beginning-of-defun (&optional arg)
+ (re-search-backward "\\<let " nil t (or arg 1))
+ (goto-char (point))
+ (back-to-indentation))
+
+(defun fsharp-mode-end-of-defun (&optional arg)
+ (when (looking-at "\\<let") (forward-line))
+ (re-search-forward "\\<let " nil t (or arg 1))
+ (goto-char (point))
+ (back-to-indentation))
+
;;; Font locking
(defconst fsharp--regexp-type
@@ 303,9 314,9 @@ ambiguous, multiple invocations will indent tabstops forward."
\\{fsharp-mode-map}"
- ;; ;; Movement
- ;; (setq-local beginning-of-defun-function #'elmo-beginning-of-defun)
- ;; (setq-local end-of-defun-function #'elmo-end-of-defun)
+ ;; Movement
+ (setq-local beginning-of-defun-function #'fsharp-mode-beginning-of-defun)
+ (setq-local end-of-defun-function #'fsharp-mode-end-of-defun)
;; ;; Indentation
(when (boundp 'electric-indent-inhibit) (setq electric-indent-inhibit t))