Skip to content

Commit 1419ca9

Browse files
authored
Merge pull request #2423 from atom-community/decaffeinate
2 parents 6cd9e76 + 18724f5 commit 1419ca9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+1734
-1010
lines changed

lib/grammar-utils.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,18 @@ const GrammarUtils = {
6161
return ["-c", command]
6262
},
6363

64+
/** get workingDirectory */
65+
workingDirectory() {
66+
const activePane = atom.workspace.getActivePaneItem()
67+
if (activePane && activePane.buffer && activePane.buffer.file && activePane.buffer.file.getParent) {
68+
const parent = activePane.buffer.file.getParent()
69+
if (parent && parent.getPath) {
70+
return parent.getPath()
71+
}
72+
}
73+
return process.cwd()
74+
},
75+
6476
// Public: Get the Java helper object
6577
//
6678
// Returns an {Object} which assists in preparing java + javac statements

lib/grammars.js

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11
"use babel"
22

3-
import grammarMap from "./grammars/index.coffee"
3+
import grammarMap from "./grammars/index"
44

5-
import apple from "./grammars/apple.coffee"
6-
import c from "./grammars/c.coffee"
7-
import coffeescript from "./grammars/coffeescript.coffee"
8-
import database from "./grammars/database.coffee"
9-
import doc from "./grammars/doc.coffee"
10-
import fortran from "./grammars/fortran.coffee"
11-
import haskell from "./grammars/haskell.coffee"
12-
import java from "./grammars/java.coffee"
13-
import * as js from "./grammars/javascript"
14-
import lisp from "./grammars/lisp.coffee"
15-
import lua from "./grammars/lua.coffee"
16-
import ml from "./grammars/ml.coffee"
17-
import perl from "./grammars/perl.coffee"
18-
import php from "./grammars/php.coffee"
19-
import python from "./grammars/python.coffee"
20-
import ruby from "./grammars/ruby.coffee"
21-
import shell from "./grammars/shell.coffee"
22-
import windows from "./grammars/windows.coffee"
5+
import * as apple from "./grammars/apple"
6+
import c from "./grammars/c"
7+
import coffeescript from "./grammars/coffeescript"
8+
import database from "./grammars/database"
9+
import doc from "./grammars/doc"
10+
import fortran from "./grammars/fortran"
11+
import haskell from "./grammars/haskell"
12+
import * as java from "./grammars/java"
13+
import js from "./grammars/javascript"
14+
import lisp from "./grammars/lisp"
15+
import lua from "./grammars/lua"
16+
import ml from "./grammars/ml"
17+
import perl from "./grammars/perl"
18+
import php from "./grammars/php"
19+
import * as python from "./grammars/python"
20+
import ruby from "./grammars/ruby"
21+
import shell from "./grammars/shell"
22+
import windows from "./grammars/windows"
2323

2424
const Grammars = {
2525
...grammarMap,

lib/grammars/apple.coffee

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

lib/grammars/apple.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
"use babel"
2+
3+
export const AppleScript = {
4+
"Selection Based": {
5+
command: "osascript",
6+
args(context) {
7+
return ["-e", context.getCode()]
8+
},
9+
},
10+
11+
"File Based": {
12+
command: "osascript",
13+
args({ filepath }) {
14+
return [filepath]
15+
},
16+
},
17+
}
18+
19+
export const Swift = {
20+
"File Based": {
21+
command: "swift",
22+
args({ filepath }) {
23+
return [filepath]
24+
},
25+
},
26+
}

lib/grammars/c.coffee

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

lib/grammars/c.js

Lines changed: 179 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,179 @@
1+
"use babel"
2+
3+
import path from "path"
4+
import GrammarUtils from "../grammar-utils"
5+
const { OperatingSystem, command } = GrammarUtils
6+
7+
const os = OperatingSystem.platform()
8+
const windows = OperatingSystem.isWindows()
9+
10+
const options = "-Wall -include stdio.h"
11+
12+
// TODO add windows support
13+
function CArgs({ filepath }) {
14+
let cmdArgs = ""
15+
switch (os) {
16+
case "darwin":
17+
cmdArgs = `xcrun clang ${options} -fcolor-diagnostics '${filepath}' -o /tmp/c.out && /tmp/c.out`
18+
break
19+
case "linux":
20+
cmdArgs = `cc ${options} '${filepath}' -o /tmp/c.out && /tmp/c.out`
21+
break
22+
default: {
23+
atom.notifications.addError(`Not support on ${os}`)
24+
}
25+
}
26+
return ["-c", cmdArgs]
27+
}
28+
29+
const C = {
30+
"File Based": {
31+
command: "bash",
32+
args(opts) {
33+
return CArgs(opts)
34+
},
35+
},
36+
37+
"Selection Based": {
38+
command: "bash",
39+
args(context) {
40+
const code = context.getCode()
41+
const tmpFile = GrammarUtils.createTempFileWithCode(code, ".c")
42+
return CArgs({ filepath: tmpFile })
43+
},
44+
},
45+
}
46+
47+
const Cs = {
48+
"Selection Based": {
49+
command,
50+
args(context) {
51+
const code = context.getCode()
52+
const tmpFile = GrammarUtils.createTempFileWithCode(code, ".cs")
53+
const exe = tmpFile.replace(/\.cs$/, ".exe")
54+
if (windows) {
55+
return [`/c csc /out:${exe} ${tmpFile} && ${exe}`]
56+
} else {
57+
return ["-c", `csc /out:${exe} ${tmpFile} && mono ${exe}`]
58+
}
59+
},
60+
},
61+
"File Based": {
62+
command,
63+
args({ filepath, filename }) {
64+
const exe = filename.replace(/\.cs$/, ".exe")
65+
if (windows) {
66+
return [`/c csc ${filepath} && ${exe}`]
67+
} else {
68+
return ["-c", `csc '${filepath}' && mono ${exe}`]
69+
}
70+
},
71+
},
72+
}
73+
const CSScriptFile = {
74+
"Selection Based": {
75+
command: "scriptcs",
76+
args(context) {
77+
const code = context.getCode()
78+
const tmpFile = GrammarUtils.createTempFileWithCode(code, ".csx")
79+
return ["-script", tmpFile]
80+
},
81+
},
82+
"File Based": {
83+
command: "scriptcs",
84+
args({ filepath }) {
85+
return ["-script", filepath]
86+
},
87+
},
88+
}
89+
90+
const Cpp = {
91+
"Selection Based": {
92+
command: "bash",
93+
args(context) {
94+
const code = context.getCode()
95+
const tmpFile = GrammarUtils.createTempFileWithCode(code, ".cpp")
96+
let cmdArgs = ""
97+
98+
switch (os) {
99+
case "darwin":
100+
cmdArgs = `xcrun clang++ -std=c++14 ${options} -fcolor-diagnostics -include iostream ${tmpFile} -o /tmp/cpp.out && /tmp/cpp.out`
101+
break
102+
case "linux":
103+
cmdArgs = `g++ ${options} -std=c++14 -include iostream ${tmpFile} -o /tmp/cpp.out && /tmp/cpp.out`
104+
break
105+
default: {
106+
atom.notifications.addError(`Not support on ${os}`)
107+
}
108+
}
109+
return ["-c", cmdArgs]
110+
},
111+
},
112+
113+
"File Based": {
114+
command,
115+
args({ filepath }) {
116+
let cmdArgs = ""
117+
switch (os) {
118+
case "darwin":
119+
cmdArgs = `xcrun clang++ -std=c++14 ${options} -fcolor-diagnostics -include iostream '${filepath}' -o /tmp/cpp.out && /tmp/cpp.out`
120+
break
121+
case "linux":
122+
cmdArgs = `g++ -std=c++14 ${options} -include iostream '${filepath}' -o /tmp/cpp.out && /tmp/cpp.out`
123+
break
124+
case "win32":
125+
if (
126+
GrammarUtils.OperatingSystem.release()
127+
.split(".")
128+
.slice(-1 >= "14399")
129+
) {
130+
filepath = path.posix
131+
.join(...[filepath.split(path.win32.sep)[0].toLowerCase(), ...filepath.split(path.win32.sep).slice(1)])
132+
.replace(":", "")
133+
cmdArgs = `g++ -std=c++14 ${options} -include iostream /mnt/${filepath} -o /tmp/cpp.out && /tmp/cpp.out`
134+
}
135+
break
136+
default: {
137+
atom.notifications.addError(`Not support on ${os}`)
138+
}
139+
}
140+
return GrammarUtils.formatArgs(cmdArgs)
141+
},
142+
},
143+
}
144+
const Cpp14 = Cpp
145+
146+
const ObjectiveC = {
147+
"File Based": {
148+
command: "bash",
149+
args({ filepath }) {
150+
return [
151+
"-c",
152+
`xcrun clang ${options} -fcolor-diagnostics -framework Cocoa '${filepath}' -o /tmp/objc-c.out && /tmp/objc-c.out`,
153+
]
154+
},
155+
},
156+
}
157+
158+
const ObjectiveCpp = {
159+
"File Based": {
160+
command: "bash",
161+
args({ filepath }) {
162+
return [
163+
"-c",
164+
`xcrun clang++ -Wc++11-extensions ${options} -fcolor-diagnostics -include iostream -framework Cocoa '${filepath}' -o /tmp/objc-cpp.out && /tmp/objc-cpp.out`,
165+
]
166+
},
167+
},
168+
}
169+
170+
const CGrammars = {
171+
C,
172+
"C++": Cpp,
173+
"C++14": Cpp14,
174+
"C#": Cs,
175+
"C# Script File": CSScriptFile,
176+
"Objective-C": ObjectiveC,
177+
"Objective-C++": ObjectiveCpp,
178+
}
179+
export default CGrammars

0 commit comments

Comments
 (0)