Skip to content

Commit 88a895d

Browse files
authored
Merge pull request #1 from bobbicodes/add-java-method
Port methods from Java Character class
2 parents 11e9e92 + 2f8affe commit 88a895d

File tree

12 files changed

+1715
-1613
lines changed

12 files changed

+1715
-1613
lines changed

demo/style.css

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
:root {
22
font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
33
color-scheme: light dark;
4-
color: rgba(255, 230, 0, 0.87);
5-
background-color: #2c0236;
4+
color: rgba(0, 0, 0, 0.87);
5+
background-color: #848285;
66

77
font-synthesis: none;
88
text-rendering: optimizeLegibility;
@@ -13,5 +13,5 @@
1313

1414
#app {
1515
margin: 0 auto;
16-
font-size: x-large;
16+
font-size: large;
1717
}

dist/assets/index-63b2bd30.js

Lines changed: 0 additions & 1054 deletions
This file was deleted.

dist/assets/index-b488241e.css

Lines changed: 0 additions & 1 deletion
This file was deleted.

dist/assets/index-d113e326.js

Lines changed: 1059 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/assets/index-dcab846b.css

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
<link rel="icon" type="image/svg+xml" href="/lang-clojure-eval/assets/vite-4a748afd.svg" />
66
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
77
<title>Vite App</title>
8-
<script type="module" crossorigin src="/lang-clojure-eval/assets/index-63b2bd30.js"></script>
9-
<link rel="stylesheet" href="/lang-clojure-eval/assets/index-b488241e.css">
8+
<script type="module" crossorigin src="/lang-clojure-eval/assets/index-d113e326.js"></script>
9+
<link rel="stylesheet" href="/lang-clojure-eval/assets/index-dcab846b.css">
1010
</head>
1111
<body>
1212
<div id="app"></div>

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "lang-clojure-eval",
3-
"version": "0.0.19",
3+
"version": "0.0.20",
44
"author": "Bobbi Towers <[email protected]>",
55
"description": "Lezer-based Clojure Codemirror 6 extension with live evaluation",
66
"main": "dist/index.cjs",

shadow-cljs.edn

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,19 @@
44
:builds
55
{:sci
66
{:target :esm
7-
:output-dir "public/js"
7+
:output-dir "src"
88
:modules {:sci {:exports {evalString lang-clojure-eval.main/eval-string
9-
context lang-clojure-eval.main/context}}}}}}
9+
context lang-clojure-eval.main/context
10+
isISOControl lang-clojure-eval.character/isISOControl
11+
isLetter lang-clojure-eval.character/isLetter
12+
isAlphabetic lang-clojure-eval.character/isAlphabetic
13+
isSpace lang-clojure-eval.character/isSpace
14+
isUpperCase lang-clojure-eval.character/isUpperCase
15+
isLowerCase lang-clojure-eval.character/isLowerCase
16+
toUpperCase lang-clojure-eval.character/toUpperCase
17+
toLowerCase lang-clojure-eval.character/toLowerCase
18+
digit lang-clojure-eval.character/digit
19+
;; parseInt causes ReferenceError if exported,
20+
;; but somehow works if it's not... why?
21+
;parseInt lang-clojure-eval.integer/parse-int
22+
}}}}}}

src/lang_clojure_eval/character.cljs

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
(ns lang-clojure-eval.character
2+
(:require [clojure.string :as str]
3+
[clojure.edn :as edn]))
4+
5+
(defn digit [c r]
6+
(edn/read-string (str r "r" c)))
7+
8+
(defn isLetter
9+
"Takes either a char or a Unicode code point."
10+
[x]
11+
(if (int? x)
12+
(not= (str/upper-case (char x))
13+
(str/lower-case (char x)))
14+
(not= (str/upper-case x)
15+
(str/lower-case x))))
16+
17+
(defn isAlphabetic
18+
"Takes a Unicode code point."
19+
[int]
20+
(not= (str/upper-case (.fromCharCode js/String int))
21+
(str/lower-case (.fromCharCode js/String int))))
22+
23+
(defn isUpperCase
24+
"Takes either a char or a Unicode code point."
25+
[x]
26+
(if (int? x)
27+
(and (isLetter (.fromCharCode js/String x))
28+
(= (.fromCharCode js/String x)
29+
(str/upper-case (.fromCharCode js/String x))))
30+
(and (isLetter x)
31+
(= x (str/upper-case x)))))
32+
33+
(defn isLowerCase
34+
"Takes either a char or a Unicode code point."
35+
[x]
36+
(if (int? x)
37+
(and (isLetter (.fromCharCode js/String x))
38+
(= (.fromCharCode js/String x)
39+
(str/lower-case (.fromCharCode js/String x))))
40+
(and (isLetter x)
41+
(= x (str/lower-case x)))))
42+
43+
(defn toUpperCase [s]
44+
(str/upper-case s))
45+
46+
(defn toLowerCase [s]
47+
(str/lower-case s))
48+
49+
(defn isSpace [c]
50+
(boolean (re-find #"\s" (str c))))
51+
52+
(defn isISOControl [char]
53+
(boolean (re-seq #"[\u0000-\u001F\u007F-\u009F]" char)))

src/lang_clojure_eval/integer.cljs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
(ns lang-clojure-eval.integer
2+
(:require [clojure.edn :as edn]))
3+
4+
(defn parse-int [s]
5+
(edn/read-string s))

0 commit comments

Comments
 (0)