Skip to content

Commit 82b3d58

Browse files
committed
Add support for Go
1 parent eeb665d commit 82b3d58

File tree

6 files changed

+45
-0
lines changed

6 files changed

+45
-0
lines changed

example/a+b/go-WA/SOLUTION

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# -*- coding: utf-8; mode: python -*-
2+
3+
go_solution(src='main.go', challenge_cases=[])

example/a+b/go-WA/main.go

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package main
2+
3+
import "fmt"
4+
5+
func main() {
6+
var a, b int
7+
fmt.Scan(&a, &b)
8+
fmt.Println(a - b)
9+
}

example/a+b/go-correct/SOLUTION

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# -*- coding: utf-8; mode: python -*-
2+
3+
go_solution(src='main.go')

example/a+b/go-correct/main.go

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package main
2+
3+
import "fmt"
4+
5+
func main() {
6+
var a, b int
7+
fmt.Scan(&a, &b)
8+
fmt.Println(a + b)
9+
}

rime/basic/codes.py

+16
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,21 @@ def __init__(self, src_name, src_dir, out_dir, flags=[]):
208208
run_args=[os.path.join(out_dir, exe_name)])
209209

210210

211+
class GoCode(CodeBase):
212+
PREFIX = 'go'
213+
EXTENSIONS = ['go']
214+
215+
def __init__(self, src_name, src_dir, out_dir, flags=[]):
216+
exe_name = os.path.splitext(src_name)[0] + consts.EXE_EXT
217+
goc = 'go'
218+
super(GoCode, self).__init__(
219+
src_name=src_name, src_dir=src_dir, out_dir=out_dir,
220+
compile_args=([goc, 'build',
221+
'-o', os.path.join(out_dir, exe_name)] +
222+
flags + [src_name]),
223+
run_args=[os.path.join(out_dir, exe_name)])
224+
225+
211226
class ScriptCode(CodeBase):
212227
QUIET_COMPILE = True
213228
PREFIX = 'script'
@@ -298,4 +313,5 @@ def Clean(self):
298313
codes.registry.Add(KotlinCode)
299314
codes.registry.Add(JavaCode)
300315
codes.registry.Add(RustCode)
316+
codes.registry.Add(GoCode)
301317
codes.registry.Add(ScriptCode)

rime/plugins/plus/commands.py

+5
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,7 @@ def Add(self, args, ui):
180180
#java_solution(src='Main.java', encoding='UTF-8', mainclass='Main',
181181
# challenge_cases=['10_corner*.in'])
182182
#rust_solution(src='main.rs') # Rust (rustc)
183+
#go_solution(src='main.go') # Go
183184
#script_solution(src='main.sh') # shebang line is required
184185
#script_solution(src='main.pl') # shebang line is required
185186
#script_solution(src='main.py') # shebang line is required
@@ -207,6 +208,7 @@ def Add(self, args, ui):
207208
#cxx_generator(src='generator.cc', dependency=['testlib.h'])
208209
#java_generator(src='Generator.java', encoding='UTF-8', mainclass='Generator')
209210
#rust_generator(src='generator.rs')
211+
#go_generator(src='generator.go')
210212
#script_generator(src='generator.pl')
211213
212214
## Input validators.
@@ -215,6 +217,7 @@ def Add(self, args, ui):
215217
#java_validator(src='Validator.java', encoding='UTF-8',
216218
# mainclass='tmp/validator/Validator')
217219
#rust_validator(src='validator.rs')
220+
#go_validator(src='validator.go')
218221
#script_validator(src='validator.pl')
219222
220223
## Output judges.
@@ -223,6 +226,7 @@ def Add(self, args, ui):
223226
# variant=testlib_judge_runner)
224227
#java_judge(src='Judge.java', encoding='UTF-8', mainclass='Judge')
225228
#rust_judge(src='judge.rs')
229+
#go_judge(src='judge.go')
226230
#script_judge(src='judge.py')
227231
228232
## Reactives.
@@ -231,6 +235,7 @@ def Add(self, args, ui):
231235
# variant=kupc_reactive_runner)
232236
#java_reactive(src='Reactive.java', encoding='UTF-8', mainclass='Judge')
233237
#rust_reactive(src='reactive.rs')
238+
#go_reactive(src='reactive.go')
234239
#script_reactive(src='reactive.py')
235240
236241
## Extra Testsets.

0 commit comments

Comments
 (0)