mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
Add some basic tests for java-ts-mode and typescript-ts-mode
* test/lisp/progmodes/java-ts-mode-resources/indent.erts: New file with tests for indentation. * test/lisp/progmodes/java-ts-mode-resources/movement.erts: New file with tests for movement. * test/lisp/progmodes/java-ts-mode-tests.el: New tests. * test/lisp/progmodes/typescript-ts-mode-resources/indent.erts: New file with tests for indentation. * test/lisp/progmodes/typescript-ts-mode-tests.el: New tests.
This commit is contained in:
parent
e84111a001
commit
c8dd37b16c
5 changed files with 337 additions and 0 deletions
44
test/lisp/progmodes/java-ts-mode-resources/indent.erts
Normal file
44
test/lisp/progmodes/java-ts-mode-resources/indent.erts
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
Code:
|
||||
(lambda ()
|
||||
(setq indent-tabs-mode nil)
|
||||
(setq java-ts-mode-indent-offset 2)
|
||||
(java-ts-mode)
|
||||
(indent-region (point-min) (point-max)))
|
||||
|
||||
Point-Char: |
|
||||
|
||||
Name: Basic
|
||||
|
||||
=-=
|
||||
public class Basic {
|
||||
public void basic() {
|
||||
return;
|
||||
}
|
||||
}
|
||||
=-=-=
|
||||
|
||||
Name: Empty Line
|
||||
|
||||
=-=
|
||||
public class EmptyLine {
|
||||
public void emptyLine() {
|
||||
|
|
||||
}
|
||||
}
|
||||
=-=-=
|
||||
|
||||
Name: Statements
|
||||
|
||||
=-=
|
||||
if (x) {
|
||||
for (var foo : foos) {
|
||||
|
|
||||
}
|
||||
} else if (y) {
|
||||
for (int i = 0; x < foos.size(); i++) {
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
=-=-=
|
||||
154
test/lisp/progmodes/java-ts-mode-resources/movement.erts
Normal file
154
test/lisp/progmodes/java-ts-mode-resources/movement.erts
Normal file
|
|
@ -0,0 +1,154 @@
|
|||
Code:
|
||||
(lambda ()
|
||||
(java-ts-mode)
|
||||
(forward-sentence 1))
|
||||
|
||||
Point-Char: |
|
||||
|
||||
Name: forward-sentence moves over if
|
||||
|
||||
=-=
|
||||
public class Basic {
|
||||
public void basic() {
|
||||
|if (x) {
|
||||
|
||||
}
|
||||
log.info("some text: {}", text);
|
||||
return;
|
||||
}
|
||||
}
|
||||
=-=
|
||||
public class Basic {
|
||||
public void basic() {
|
||||
if (x) {
|
||||
|
||||
}|
|
||||
log.info("some text: {}", text);
|
||||
return;
|
||||
}
|
||||
}
|
||||
=-=-=
|
||||
|
||||
Name: forward-sentence moves over method invocation
|
||||
|
||||
=-=
|
||||
public class Basic {
|
||||
public void basic() {
|
||||
|log.info("some text: {}", text);
|
||||
}
|
||||
}
|
||||
=-=
|
||||
public class Basic {
|
||||
public void basic() {
|
||||
log.info("some text: {}", text);|
|
||||
}
|
||||
}
|
||||
=-=-=
|
||||
|
||||
Code:
|
||||
(lambda ()
|
||||
(java-ts-mode)
|
||||
(forward-sentence 2))
|
||||
|
||||
Name: forward-sentence moves over multiple statements
|
||||
|
||||
=-=
|
||||
public class Basic {
|
||||
public void basic() {
|
||||
|return;
|
||||
return;
|
||||
}
|
||||
}
|
||||
=-=
|
||||
public class Basic {
|
||||
public void basic() {
|
||||
return;
|
||||
return;|
|
||||
}
|
||||
}
|
||||
=-=-=
|
||||
|
||||
Code:
|
||||
(lambda ()
|
||||
(java-ts-mode)
|
||||
(backward-sentence 1))
|
||||
|
||||
Name: backward-sentence moves over one statement
|
||||
|
||||
=-=
|
||||
public class Basic {
|
||||
public void basic() {
|
||||
return;|
|
||||
}
|
||||
}
|
||||
=-=
|
||||
public class Basic {
|
||||
public void basic() {
|
||||
|return;
|
||||
}
|
||||
}
|
||||
=-=-=
|
||||
|
||||
Code:
|
||||
(lambda ()
|
||||
(java-ts-mode)
|
||||
(beginning-of-defun))
|
||||
|
||||
Name: beginning-of-defun moves to defun start
|
||||
|
||||
=-=
|
||||
public class Basic {
|
||||
public void basic() {
|
||||
return;|
|
||||
}
|
||||
}
|
||||
=-=
|
||||
public class Basic {
|
||||
| public void basic() {
|
||||
return;
|
||||
}
|
||||
}
|
||||
=-=-=
|
||||
|
||||
Code:
|
||||
(lambda ()
|
||||
(java-ts-mode)
|
||||
(beginning-of-defun)
|
||||
(beginning-of-defun))
|
||||
|
||||
Name: beginning-of-defun moves to class
|
||||
|
||||
=-=
|
||||
public class Basic {
|
||||
public void basic() {
|
||||
return;|
|
||||
}
|
||||
}
|
||||
=-=
|
||||
|public class Basic {
|
||||
public void basic() {
|
||||
return;
|
||||
}
|
||||
}
|
||||
=-=-=
|
||||
|
||||
Code:
|
||||
(lambda ()
|
||||
(java-ts-mode)
|
||||
(end-of-defun))
|
||||
|
||||
Name: end-of-defun moves to defun end
|
||||
|
||||
=-=
|
||||
public class Basic {
|
||||
public void basic() {
|
||||
return;|
|
||||
}
|
||||
}
|
||||
=-=
|
||||
public class Basic {
|
||||
public void basic() {
|
||||
return;
|
||||
}
|
||||
|}
|
||||
=-=-=
|
||||
35
test/lisp/progmodes/java-ts-mode-tests.el
Normal file
35
test/lisp/progmodes/java-ts-mode-tests.el
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
;;; java-ts-mode-tests.el --- Tests for Tree-sitter-based Java mode -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 2023 Free Software Foundation, Inc.
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
;; GNU Emacs is free software: you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; GNU Emacs is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'ert)
|
||||
(require 'ert-x)
|
||||
(require 'treesit)
|
||||
|
||||
(ert-deftest java-ts-mode-test-indentation ()
|
||||
(skip-unless (treesit-ready-p 'java))
|
||||
(ert-test-erts-file (ert-resource-file "indent.erts")))
|
||||
|
||||
(ert-deftest java-ts-mode-test-movement ()
|
||||
(skip-unless (treesit-ready-p 'java))
|
||||
(ert-test-erts-file (ert-resource-file "movement.erts")))
|
||||
|
||||
(provide 'java-ts-mode-tests)
|
||||
;;; java-ts-mode-tests.el ends here
|
||||
73
test/lisp/progmodes/typescript-ts-mode-resources/indent.erts
Normal file
73
test/lisp/progmodes/typescript-ts-mode-resources/indent.erts
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
Code:
|
||||
(lambda ()
|
||||
(setq indent-tabs-mode nil)
|
||||
(setq typescript-ts-mode-indent-offset 2)
|
||||
(typescript-ts-mode)
|
||||
(indent-region (point-min) (point-max)))
|
||||
|
||||
Point-Char: |
|
||||
|
||||
Name: Basic indentation
|
||||
|
||||
=-=
|
||||
const foo = () => {
|
||||
console.log("bar");
|
||||
if (x) {
|
||||
return y;
|
||||
} else if (y) {
|
||||
return u;
|
||||
}
|
||||
return baz.x()
|
||||
? true
|
||||
: false;
|
||||
}
|
||||
=-=-=
|
||||
|
||||
Code:
|
||||
(lambda ()
|
||||
(setq indent-tabs-mode nil)
|
||||
(setq tsx-ts-mode-indent-offset 2)
|
||||
(tsx-ts-mode)
|
||||
(indent-region (point-min) (point-max)))
|
||||
|
||||
Name: JSX indentation
|
||||
|
||||
=-=
|
||||
const foo = (props) => {
|
||||
return (
|
||||
<div>
|
||||
<div>
|
||||
<div>
|
||||
<div>
|
||||
{
|
||||
props.foo
|
||||
? Hello, foo!
|
||||
: Hello, World!;
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
=-=-=
|
||||
|
||||
Name: JSX indentation with attributes
|
||||
|
||||
=-=
|
||||
const foo = (props) => {
|
||||
return (
|
||||
<div
|
||||
className={foo}
|
||||
onClick={() => {
|
||||
alert('???');
|
||||
return () => {
|
||||
return 5+5;
|
||||
};
|
||||
}}
|
||||
>
|
||||
<p>Some text</p>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
=-=-=
|
||||
31
test/lisp/progmodes/typescript-ts-mode-tests.el
Normal file
31
test/lisp/progmodes/typescript-ts-mode-tests.el
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
;;; typescript-ts-mode-tests.el --- Tests for Tree-sitter-based TypeScript mode -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 2023 Free Software Foundation, Inc.
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
;; GNU Emacs is free software: you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; GNU Emacs is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'ert)
|
||||
(require 'ert-x)
|
||||
(require 'treesit)
|
||||
|
||||
(ert-deftest typescript-ts-mode-test-indentation ()
|
||||
(skip-unless (treesit-ready-p 'typescript))
|
||||
(ert-test-erts-file (ert-resource-file "indent.erts")))
|
||||
|
||||
(provide 'typescript-ts-mode-tests)
|
||||
;;; typescript-ts-mode-tests.el ends here
|
||||
Loading…
Add table
Add a link
Reference in a new issue