From 07311b772c480fe9f955686a55fb2ddd1c114242 Mon Sep 17 00:00:00 2001 From: Brahim Djoudi Date: Sat, 27 Jan 2018 17:51:02 +0100 Subject: [PATCH 1/9] Slice interface language support Signed-off-by: Brahim Djoudi --- lib/rouge/demos/slice | 27 +++++++++++++++++++++++++++ lib/rouge/lexers/slice.rb | 32 ++++++++++++++++++++++++++++++++ spec/lexers/slice_spec.rb | 17 +++++++++++++++++ spec/visual/samples/slice | 27 +++++++++++++++++++++++++++ 4 files changed, 103 insertions(+) create mode 100644 lib/rouge/demos/slice create mode 100644 lib/rouge/lexers/slice.rb create mode 100644 spec/lexers/slice_spec.rb create mode 100644 spec/visual/samples/slice diff --git a/lib/rouge/demos/slice b/lib/rouge/demos/slice new file mode 100644 index 0000000000..2dd103ac37 --- /dev/null +++ b/lib/rouge/demos/slice @@ -0,0 +1,27 @@ +module Filesystem +{ + interface Node + { + idempotent string name(); + } + + exception GenericError + { + string reason; + } + + sequence Lines; + + interface File extends Node + { + idempotent Lines read(); + idempotent void write(Lines text) throws GenericError; + } + + sequence NodeSeq; + + interface Directory extends Node + { + idempotent NodeSeq list(); + } +} diff --git a/lib/rouge/lexers/slice.rb b/lib/rouge/lexers/slice.rb new file mode 100644 index 0000000000..fd231b6f5a --- /dev/null +++ b/lib/rouge/lexers/slice.rb @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- # + +module Rouge + module Lexers + load_lexer 'c.rb' + + class Slice < C + tag 'slice' + filenames '*.ice' + mimetypes 'text/slice' + + title "Slice" + desc "Slice interface language (https://doc.zeroc.com/display/Ice37/The+Slice+Language)" + + def self.keywords + @keywords ||= Set.new %w( + extends implements enum interface struct class module dictionary const + optional out throws exception local idempotent sequence + + Object LocalObject Value + ) + end + + def self.keywords_type + @keywords_type ||= Set.new %w( + bool string byte long float double int void short + ) + end + + end + end +end diff --git a/spec/lexers/slice_spec.rb b/spec/lexers/slice_spec.rb new file mode 100644 index 0000000000..779f6629ae --- /dev/null +++ b/spec/lexers/slice_spec.rb @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- # + +describe Rouge::Lexers::Slice do + let(:subject) { Rouge::Lexers::Slice.new } + + describe 'guessing' do + include Support::Guessing + + it 'guesses by filename' do + assert_guess :filename => 'foo.ice' + end + + it 'guesses by mimetype' do + assert_guess :mimetype => 'text/slice' + end + end +end diff --git a/spec/visual/samples/slice b/spec/visual/samples/slice new file mode 100644 index 0000000000..2dd103ac37 --- /dev/null +++ b/spec/visual/samples/slice @@ -0,0 +1,27 @@ +module Filesystem +{ + interface Node + { + idempotent string name(); + } + + exception GenericError + { + string reason; + } + + sequence Lines; + + interface File extends Node + { + idempotent Lines read(); + idempotent void write(Lines text) throws GenericError; + } + + sequence NodeSeq; + + interface Directory extends Node + { + idempotent NodeSeq list(); + } +} From 5a09c599e1ecf5125dbadb96ea24a7c3cea49143 Mon Sep 17 00:00:00 2001 From: Brahim Djoudi Date: Thu, 1 Feb 2018 22:36:25 +0100 Subject: [PATCH 2/9] Comments added to sample --- lib/rouge/demos/slice | 3 +++ spec/visual/samples/slice | 28 +--------------------------- 2 files changed, 4 insertions(+), 27 deletions(-) mode change 100644 => 120000 spec/visual/samples/slice diff --git a/lib/rouge/demos/slice b/lib/rouge/demos/slice index 2dd103ac37..c481a60d8b 100644 --- a/lib/rouge/demos/slice +++ b/lib/rouge/demos/slice @@ -1,5 +1,7 @@ +// file system module module Filesystem { + // Node interface: interface Node { idempotent string name(); @@ -20,6 +22,7 @@ module Filesystem sequence NodeSeq; + // Directory interface: interface Directory extends Node { idempotent NodeSeq list(); diff --git a/spec/visual/samples/slice b/spec/visual/samples/slice deleted file mode 100644 index 2dd103ac37..0000000000 --- a/spec/visual/samples/slice +++ /dev/null @@ -1,27 +0,0 @@ -module Filesystem -{ - interface Node - { - idempotent string name(); - } - - exception GenericError - { - string reason; - } - - sequence Lines; - - interface File extends Node - { - idempotent Lines read(); - idempotent void write(Lines text) throws GenericError; - } - - sequence NodeSeq; - - interface Directory extends Node - { - idempotent NodeSeq list(); - } -} diff --git a/spec/visual/samples/slice b/spec/visual/samples/slice new file mode 120000 index 0000000000..9409d77eb0 --- /dev/null +++ b/spec/visual/samples/slice @@ -0,0 +1 @@ +../../../lib/rouge/demos/slice \ No newline at end of file From ba48fa0a204cc9d364f06d78bbe270fe507d9858 Mon Sep 17 00:00:00 2001 From: Brahim Djoudi Date: Sun, 4 Feb 2018 11:30:26 +0100 Subject: [PATCH 3/9] Old-style format, metadata added --- lib/rouge/demos/slice | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/lib/rouge/demos/slice b/lib/rouge/demos/slice index c481a60d8b..0e3733731b 100644 --- a/lib/rouge/demos/slice +++ b/lib/rouge/demos/slice @@ -1,30 +1,27 @@ -// file system module -module Filesystem -{ +// File system module. +module Filesystem { + // Node interface: - interface Node - { + interface Node { idempotent string name(); } - exception GenericError - { + exception GenericError { string reason; } sequence Lines; - interface File extends Node - { + ["java:implements:java.lang.AutoCloseable"] + interface File extends Node { idempotent Lines read(); - idempotent void write(Lines text) throws GenericError; + idempotent void write(Lines text) throws GenericError; } sequence NodeSeq; // Directory interface: - interface Directory extends Node - { + interface Directory extends Node { idempotent NodeSeq list(); } } From fa687322af938f76cffeefe901c1d08098e2103c Mon Sep 17 00:00:00 2001 From: Brahim Djoudi Date: Fri, 11 Jan 2019 22:10:20 +0100 Subject: [PATCH 4/9] frozen_string_literal added --- lib/rouge/lexers/slice.rb | 1 + spec/lexers/slice_spec.rb | 1 + 2 files changed, 2 insertions(+) diff --git a/lib/rouge/lexers/slice.rb b/lib/rouge/lexers/slice.rb index fd231b6f5a..9a9d4a48be 100644 --- a/lib/rouge/lexers/slice.rb +++ b/lib/rouge/lexers/slice.rb @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- # +# frozen_string_literal: true module Rouge module Lexers diff --git a/spec/lexers/slice_spec.rb b/spec/lexers/slice_spec.rb index 779f6629ae..6f859f9f17 100644 --- a/spec/lexers/slice_spec.rb +++ b/spec/lexers/slice_spec.rb @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- # +# frozen_string_literal: true describe Rouge::Lexers::Slice do let(:subject) { Rouge::Lexers::Slice.new } From ce22e3e3963f2e53e1655473f54732885b2ef573 Mon Sep 17 00:00:00 2001 From: Michael Camilleri Date: Sat, 31 Aug 2019 03:32:30 +0900 Subject: [PATCH 5/9] Amend description --- lib/rouge/lexers/slice.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rouge/lexers/slice.rb b/lib/rouge/lexers/slice.rb index 9a9d4a48be..718f3db148 100644 --- a/lib/rouge/lexers/slice.rb +++ b/lib/rouge/lexers/slice.rb @@ -11,7 +11,7 @@ class Slice < C mimetypes 'text/slice' title "Slice" - desc "Slice interface language (https://doc.zeroc.com/display/Ice37/The+Slice+Language)" + desc "Specification Language for Ice (doc.zeroc.com)" def self.keywords @keywords ||= Set.new %w( From fd7976f06f0ab52b88219b01ccf3926a0db9def8 Mon Sep 17 00:00:00 2001 From: Michael Camilleri Date: Sat, 31 Aug 2019 03:37:34 +0900 Subject: [PATCH 6/9] Simplify demo --- lib/rouge/demos/slice | 33 ++++++++------------------------- 1 file changed, 8 insertions(+), 25 deletions(-) diff --git a/lib/rouge/demos/slice b/lib/rouge/demos/slice index 0e3733731b..7c382201d1 100644 --- a/lib/rouge/demos/slice +++ b/lib/rouge/demos/slice @@ -1,27 +1,10 @@ -// File system module. -module Filesystem { - - // Node interface: - interface Node { - idempotent string name(); - } - - exception GenericError { - string reason; - } - - sequence Lines; - - ["java:implements:java.lang.AutoCloseable"] - interface File extends Node { - idempotent Lines read(); - idempotent void write(Lines text) throws GenericError; - } - - sequence NodeSeq; - - // Directory interface: - interface Directory extends Node { - idempotent NodeSeq list(); +// Printer.ice +module Demo +{ + interface Printer + { + // A client can invoke this operation on a server. + // In this example we print the string s + void printString(string s); } } From 2f01bc9c2af2c61caa5ad69fb05e29eebc745eea Mon Sep 17 00:00:00 2001 From: Michael Camilleri Date: Sat, 31 Aug 2019 03:38:01 +0900 Subject: [PATCH 7/9] Reformat arrays --- lib/rouge/lexers/slice.rb | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/lib/rouge/lexers/slice.rb b/lib/rouge/lexers/slice.rb index 718f3db148..92eb425777 100644 --- a/lib/rouge/lexers/slice.rb +++ b/lib/rouge/lexers/slice.rb @@ -15,19 +15,17 @@ class Slice < C def self.keywords @keywords ||= Set.new %w( - extends implements enum interface struct class module dictionary const - optional out throws exception local idempotent sequence - + extends implements enum interface struct class module dictionary + const optional out throws exception local idempotent sequence Object LocalObject Value ) end def self.keywords_type @keywords_type ||= Set.new %w( - bool string byte long float double int void short + bool string byte long float double int void short ) end - end end end From 5027468d9f94a070a2c69b317ee0d3ab91dea8c9 Mon Sep 17 00:00:00 2001 From: Michael Camilleri Date: Sat, 31 Aug 2019 03:38:24 +0900 Subject: [PATCH 8/9] Replace link with visual sample --- spec/visual/samples/slice | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) mode change 120000 => 100644 spec/visual/samples/slice diff --git a/spec/visual/samples/slice b/spec/visual/samples/slice deleted file mode 120000 index 9409d77eb0..0000000000 --- a/spec/visual/samples/slice +++ /dev/null @@ -1 +0,0 @@ -../../../lib/rouge/demos/slice \ No newline at end of file diff --git a/spec/visual/samples/slice b/spec/visual/samples/slice new file mode 100644 index 0000000000..0e3733731b --- /dev/null +++ b/spec/visual/samples/slice @@ -0,0 +1,27 @@ +// File system module. +module Filesystem { + + // Node interface: + interface Node { + idempotent string name(); + } + + exception GenericError { + string reason; + } + + sequence Lines; + + ["java:implements:java.lang.AutoCloseable"] + interface File extends Node { + idempotent Lines read(); + idempotent void write(Lines text) throws GenericError; + } + + sequence NodeSeq; + + // Directory interface: + interface Directory extends Node { + idempotent NodeSeq list(); + } +} From 942c564e3fb5dd9ed95a6d7574ab7f676a738bf3 Mon Sep 17 00:00:00 2001 From: Michael Camilleri Date: Sat, 31 Aug 2019 03:42:27 +0900 Subject: [PATCH 9/9] Revert array formatting --- lib/rouge/lexers/slice.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/rouge/lexers/slice.rb b/lib/rouge/lexers/slice.rb index 92eb425777..f2739cbd95 100644 --- a/lib/rouge/lexers/slice.rb +++ b/lib/rouge/lexers/slice.rb @@ -17,6 +17,7 @@ def self.keywords @keywords ||= Set.new %w( extends implements enum interface struct class module dictionary const optional out throws exception local idempotent sequence + Object LocalObject Value ) end