Jean Privat [Wed, 1 Oct 2014 00:13:09 +0000 (20:13 -0400)]
engines: no more `super_inits` method used in old-style automatic init
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 30 Sep 2014 17:23:13 +0000 (13:23 -0400)]
.mailmap: add alias for privat@pryen.org
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 30 Sep 2014 10:51:52 +0000 (06:51 -0400)]
Merge: toolcontext: new option -w to enable/disable warning
The `-w` option takes the name of a warning (displayed at the end of message, between parentheses) to activate it; and "no-{name}" to disable it. It has precedence over -q and -W.
To show only missing-doc warnings in standard
~~~sh
$ nitg -q -w missing-doc standard
~~~
To show all warnings and advices, except missing-doc
~~~sh
$ nitg -W -w no-missing-doc standard
~~~
To show standard warnings except useless-type-test, but not advice except missing-doc
~~~sh
$ nitg -w missing-doc -w no-useless-type-test standard
~~~
Pull-Request: #790
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>
Jean Privat [Tue, 30 Sep 2014 10:49:26 +0000 (06:49 -0400)]
Merge: compiler: compile_dir can be anywhere
Fix an old TODO. Now you can compile where you want and stop having a bunch of fat .nit_compile directories everywhere.
~~~sh
$ nitg --compile-dir /tmp/nit_compile examples/hello_word.nit
~~~
Pull-Request: #789
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>
Jean Privat [Tue, 30 Sep 2014 02:09:46 +0000 (22:09 -0400)]
tests: update sav/test_toolcontext*
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 30 Sep 2014 01:51:44 +0000 (21:51 -0400)]
Merge: new annotation for manual setter `autoinit`
Sometime, automatic setters are not suitable and manual ones should be used.
Nit, especially since annotations (#601 and #604), has a simple way to have attributes and manual setters.
~~~niy
class A
var foo: String is private writable(private_set_foo)
fun foo=(v: String) do ...
end
~~~
However, with new constructor, it is the `private_set_foo` method that is used as initializer during the instantiation.
~~~nit
var a = new A("toto") # is in fact:
# a = alloc-instance(A)
# a.private_set_foo("toto")
# a.init
~~~
One may want to manually promote some setters as initializers, it is the job of the proposed `autoinit` annotation.
~~~nit
class B
var foo: String is private writable(private_set_foo), noinit
fun foo=(v: String) is autoinit do ...
end
var b = new B("toto") # is in fact:
# B = alloc-instance(B)
# b.foo=("toto")
# b.init
~~~
Bonus: in fact, this works for any method, even when they have more than one parameter. See the modification of the clock example that now use new constructors with a manually-set auto-initializer.
Pull-Request: #787
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Jean Privat [Tue, 30 Sep 2014 01:51:43 +0000 (21:51 -0400)]
Merge: misc/jenkins: fix checklicense.sh
* Correct documentation.
* Fix the regular expression for the sought comment.
Fixes #780.
Signed-off-by: Jean-Christophe Beaupré <jcbrinfo@users.noreply.github.com>
Pull-Request: #786
Reviewed-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 30 Sep 2014 01:51:39 +0000 (21:51 -0400)]
Merge: Fix generic parameter names
Since the beginning of Nit and class refinement, formal parameter names were attached to local-classes (MClassDef). So giving the ability to use different names in various class refinements.
This was done in an analogous way with parameters in methods since one can change their names in redefinitions or methods.
Nowadays, I think it is a nonoptimal idea since this renaming ability is unused, worse it is considered bad since it makes code more complex to read: one do not want to have distinct vocabulary for the same class but in distinct modules.
Moreover, having parameters attached to the class but names attached to the classdef cause some meta-model nightmares and a workaround was to internally name parameters with their rank in the class.
But nobody liked error message like `got Foo#0 but expected Bar#2`
A last issue is that, for a dynamic type system point of view, the formal types can be exposed as object-oriented-services. For instance, in potential construction like `if x isa y.T then ...`, where `T` is a formal type defined in the static class of `y`, and that will be resolved at runtime.
Thus, it is a bad idea that names of services can vary through refinement.
Therefore, this PR moves the name of generic formal parameters in `MParameterType`, kill the ugly `MClassDef::parameter_names`, rationalize `MClass` and `MClassDef` construction, and update all the client code.
This PR gives also two bonuses:
* `name` and `to_s` in `MParameterType` make sense so type-related error messages are more readable.
* Since the names of formal parameters become invariant in refinements, their declaration become optional:
~~~.nit
redef class Array # no E declared here
fun pushshift(e: E):E do # but used here
add(e)
return shift
end
end
~~~
Pull-Request: #781
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>
Jean Privat [Fri, 26 Sep 2014 03:38:47 +0000 (23:38 -0400)]
tests: add base_gen_redef.nit
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 30 Sep 2014 01:13:05 +0000 (21:13 -0400)]
toolcontext: new option -w to enable/disable warning
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 30 Sep 2014 00:47:24 +0000 (20:47 -0400)]
compiler: compile_dir can be anywhere
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Christophe Beaupré [Mon, 29 Sep 2014 19:03:35 +0000 (15:03 -0400)]
misc/jenkins: fix checklicense.sh
* Correct documentation.
* Fix the regular expression for the sought comment.
Signed-off-by: Jean-Christophe Beaupré <jcbrinfo@users.noreply.github.com>
Jean Privat [Mon, 29 Sep 2014 20:16:33 +0000 (16:16 -0400)]
examples: update clock.nit with manual setter+autoinit
Signed-off-by: Jean Privat <privat@pryen.org>
Jean Privat [Mon, 29 Sep 2014 20:14:35 +0000 (16:14 -0400)]
tests: add base_init_autoinit.nit
Signed-off-by: Jean Privat <privat@pryen.org>
Jean Privat [Mon, 29 Sep 2014 19:54:59 +0000 (15:54 -0400)]
modelize: new annotation `autoinit` for manual setters
Signed-off-by: Jean Privat <privat@pryen.org>
Jean Privat [Mon, 29 Sep 2014 19:52:43 +0000 (15:52 -0400)]
modelize: remove a useless local variable
Signed-off-by: Jean Privat <privat@pryen.org>
Jean Privat [Mon, 29 Sep 2014 19:37:08 +0000 (15:37 -0400)]
engines: handle initializers with an arity!=1
Signed-off-by: Jean Privat <privat@pryen.org>
Jean Privat [Mon, 29 Sep 2014 17:07:35 +0000 (13:07 -0400)]
Merge: Less old style init special cases
The general transition to new constructor is nearer each day.
May fix an issue informally signaled by @R4PaSs.
Pull-Request: #783
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Jean Privat [Sat, 27 Sep 2014 12:15:57 +0000 (08:15 -0400)]
src: migrate some modules to new constructors
Signed-off-by: Jean Privat <privat@pryen.org>
Jean Privat [Sat, 27 Sep 2014 08:23:21 +0000 (04:23 -0400)]
tests: update related to the init changes
Signed-off-by: Jean Privat <privat@pryen.org>
Jean Privat [Sat, 27 Sep 2014 02:49:58 +0000 (22:49 -0400)]
modelize: simplify special-case for named constrcutors
The only remaining case is for old style init named "init" since they
need a move clever transition scheme.
Signed-off-by: Jean Privat <privat@pryen.org>
Jean Privat [Sat, 27 Sep 2014 02:48:03 +0000 (22:48 -0400)]
lib: some update towards more use of new constructors
Signed-off-by: Jean Privat <privat@pryen.org>
Jean Privat [Fri, 26 Sep 2014 20:29:07 +0000 (16:29 -0400)]
Merge: Clean more tests
Some improvements in misc/jenkins and tests/tests.sh
Also, disable a lot of lib/ and contrib/ programs.
There is currently no point to compile them in all engines since most do nothing or are not executable.
The validity of all modules is now tested thanks to misc/jenkins/listnit.sh (warnings, units, metrics).
Thus it is no more the job of tests.sh to look after them.
Pull-Request: #780
Jean Privat [Fri, 26 Sep 2014 03:36:53 +0000 (23:36 -0400)]
separate_compiler: use the easier way to get a mparameter from a mclass
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 26 Sep 2014 03:33:27 +0000 (23:33 -0400)]
src: update tools to new names in generic parameters
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 26 Sep 2014 03:31:12 +0000 (23:31 -0400)]
modelize_class: update resolve_mtype for new generic parameter names in the class
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 26 Sep 2014 03:29:20 +0000 (23:29 -0400)]
modelize_class: redefinition of generic classes do not need to repeat generic parameter declarations
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 26 Sep 2014 03:28:25 +0000 (23:28 -0400)]
modelize_class: adapt MClass and MClassDef creation to new mparameters
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 26 Sep 2014 03:12:44 +0000 (23:12 -0400)]
lib: rename E to V in Map-related classes
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 26 Sep 2014 02:24:41 +0000 (22:24 -0400)]
tests: update sav/nitunit_args1.res
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 26 Sep 2014 01:08:46 +0000 (21:08 -0400)]
tests: add puzzle_args1.res
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 26 Sep 2014 01:08:07 +0000 (21:08 -0400)]
tests: do not test all lib and contrib.
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 26 Sep 2014 00:38:20 +0000 (20:38 -0400)]
jenkins: add --quiet to time in unitrun.sh
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 26 Sep 2014 00:29:39 +0000 (20:29 -0400)]
nitunit: prefix xml packagenames with 'nitunit.'
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 26 Sep 2014 00:22:41 +0000 (20:22 -0400)]
tests: sum the first-execution time with the compilation time
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 26 Sep 2014 00:22:05 +0000 (20:22 -0400)]
tests: add --quiet with time to avoid poluted time output
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 26 Sep 2014 00:21:10 +0000 (20:21 -0400)]
tests: interpteters have a 0 time compilation (fix tests output with interpreters)
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 26 Sep 2014 00:19:55 +0000 (20:19 -0400)]
tests: prexif xml packages with 'tests..'
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 2 Sep 2014 13:03:58 +0000 (09:03 -0400)]
misc/jenkins: add checklicense.sh
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 2 Sep 2014 13:03:33 +0000 (09:03 -0400)]
misc/jenkins: unitrun handle classname
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Thu, 25 Sep 2014 21:41:25 +0000 (17:41 -0400)]
Merge: Various fixes and improvements from We Broke The World
Pull-Request: #778
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Jean Privat [Thu, 25 Sep 2014 21:41:22 +0000 (17:41 -0400)]
Merge: mnit improvements from We Broke The World
Pull-Request: #777
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Jean Privat [Thu, 25 Sep 2014 21:41:09 +0000 (17:41 -0400)]
Merge: New syntax for typed literal arrays
Currenlty there is only
~~~.nit
var a = [1, 2] # a isa Array[Int]
var b = [1, true] # Type Error: ambiguous array type Int Bool
var c = new Array[Object].with_items(1, true) # c isa Array[Object]
~~~
Now, there is also
~~~.nit
var d = [1, true: Object] # d isa Array[Object]
var e = [1, 2: Numeric] # e isa Array[Numeric]
var f = [1, 2: Int] # f isa Array[Int] but with a warning for the useless `:Int`
~~~
Pull-Request: #772
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Jean Privat [Wed, 24 Sep 2014 20:47:38 +0000 (16:47 -0400)]
tests: add base_array_lit_typed.nit
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Wed, 24 Sep 2014 20:46:43 +0000 (16:46 -0400)]
typing: adapt for typed literal arrays.
Signed-off-by: Jean Privat <jean@pryen.org>
Alexis Laferrière [Tue, 16 Sep 2014 14:54:33 +0000 (10:54 -0400)]
lib/ai: fix typo in doc
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Wed, 25 Jun 2014 21:41:37 +0000 (17:41 -0400)]
lib/bucketed_game: support cancel actions
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Sun, 4 May 2014 13:23:23 +0000 (09:23 -0400)]
lib/a_star: find alternative targets on path
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Sun, 21 Sep 2014 18:19:42 +0000 (14:19 -0400)]
mnit: Display use Numeric as coordinates
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Jean Privat [Thu, 25 Sep 2014 13:11:11 +0000 (09:11 -0400)]
Merge: String services on paths
Since @xymus added `%` on String, I add `/` !
I also implemented `relpath` that is really usefull (I need it for the compiler) but nitcorn and nitiwiki may also use it for their operations on relative URL or relative wiki-links
Pull-Request: #776
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Jean Privat [Thu, 25 Sep 2014 13:10:59 +0000 (09:10 -0400)]
Merge: nitdoc: do not generate private pages.
Partially fixes #771
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Pull-Request: #775
Reviewed-by: Jean Privat <jean@pryen.org>
Jean Privat [Thu, 25 Sep 2014 13:10:49 +0000 (09:10 -0400)]
Merge: Markdown: minor fixes
* fix some doc and dead code
* fix truncated fence blocks
* make sublcasses easier to implement
Pull-Request: #773
Reviewed-by: Jean Privat <jean@pryen.org>
Jean Privat [Thu, 25 Sep 2014 13:10:33 +0000 (09:10 -0400)]
Merge: Clean stuff
A lot of small fixes and cleanups not really related.
Pull-Request: #768
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Jean Privat [Thu, 25 Sep 2014 13:03:00 +0000 (09:03 -0400)]
lib: add String::relpath for advanced path manipulation
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Thu, 25 Sep 2014 04:15:44 +0000 (00:15 -0400)]
lib: add String::/ for path jonction
Signed-off-by: Jean Privat <jean@pryen.org>
Alexandre Terrasa [Thu, 25 Sep 2014 04:14:02 +0000 (00:14 -0400)]
nitdoc: do not generate private pages.
Partially fixes #771
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Jean Privat [Thu, 25 Sep 2014 02:08:12 +0000 (22:08 -0400)]
Merge: App.nit Data Store
Portable data storage services for app.nit.
May not pass the mnit_simple test before mergin the Intent PR #644.
Closes #559
Pull-Request: #662
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Romain Chanoir <chanoir.romain@courrier.uqam.ca>
Reviewed-by: Frédéric Vachon <fredvac@gmail.com>
Jean Privat [Wed, 24 Sep 2014 20:46:22 +0000 (16:46 -0400)]
parser: regenerate for typed literal arrays
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Wed, 24 Sep 2014 20:45:47 +0000 (16:45 -0400)]
grammar: add syntax for typed literal arrays
~~~
var a = [1, 2, 1.5: Numeric]
~~~
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Thu, 25 Sep 2014 01:43:35 +0000 (21:43 -0400)]
github_search_for_jni: really execute contracts
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Thu, 25 Sep 2014 01:42:56 +0000 (21:42 -0400)]
benitlux: fix a nitunit
Signed-off-by: Jean Privat <jean@pryen.org>
Alexandre Terrasa [Thu, 25 Sep 2014 01:01:07 +0000 (21:01 -0400)]
lib/markdown: remove some dead code
Shame on me...
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Thu, 25 Sep 2014 01:00:36 +0000 (21:00 -0400)]
lib/markdown: fix some documentation
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Thu, 25 Sep 2014 00:54:51 +0000 (20:54 -0400)]
lib/markdown: fix truncated lines in fence block.
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Wed, 24 Sep 2014 23:45:48 +0000 (19:45 -0400)]
lib/markdown: move line_kind to MarkdownProcessor
So subclasses can redefine the way lines are tagged.
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Jean Privat [Wed, 24 Sep 2014 14:49:54 +0000 (10:49 -0400)]
tools: new script listnit.sh to list all real compilable modules
Exclude basic tests and broken files.
Signed-off-by: Jean Privat <jean@pryen.org>
Alexis Laferrière [Thu, 11 Sep 2014 18:57:58 +0000 (14:57 -0400)]
tests: skip more errors linked to bug with nitg-g and Java FFI
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Jean Privat [Wed, 24 Sep 2014 14:40:05 +0000 (10:40 -0400)]
inkscape_tools: add .gitignore
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Wed, 24 Sep 2014 14:39:44 +0000 (10:39 -0400)]
inkscape_tools: all makes tests
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Wed, 24 Sep 2014 14:24:22 +0000 (10:24 -0400)]
nitcc: make builds minilang
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Wed, 24 Sep 2014 05:17:22 +0000 (01:17 -0400)]
tests: update sav/test_test_phase_args1.res
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Wed, 24 Sep 2014 00:55:16 +0000 (20:55 -0400)]
inkscape_tools: comment broken commands in inkscape_tools/tests/app/Makefile
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 23 Sep 2014 19:18:16 +0000 (15:18 -0400)]
inkscape_tools: update s2pn to current lib
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Wed, 24 Sep 2014 00:54:18 +0000 (20:54 -0400)]
inkscape_tools: add noinit in code generated by svg_to_png_and_nit
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Wed, 24 Sep 2014 00:46:44 +0000 (20:46 -0400)]
pnacl_platform: do not compile with -Wall
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Wed, 24 Sep 2014 00:39:29 +0000 (20:39 -0400)]
onlineide/pnacl_nit: remove useless `.as(not null)`
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Wed, 24 Sep 2014 00:26:35 +0000 (20:26 -0400)]
pep8analysis: remove unused nitcc generated files
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Wed, 24 Sep 2014 00:19:01 +0000 (20:19 -0400)]
pep8analysis_web: imports cpp
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 23 Sep 2014 17:59:50 +0000 (13:59 -0400)]
astprinter: update code
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 23 Sep 2014 19:19:51 +0000 (15:19 -0400)]
typing: ASuperExpr do not lose information about the type of self
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 23 Sep 2014 17:02:34 +0000 (13:02 -0400)]
test_phase: count method definitions
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 23 Sep 2014 22:21:31 +0000 (18:21 -0400)]
Merge: Embarassing fixes
Don't ask me why it worked before...
Pull-Request: #767
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexis Laferrière [Tue, 23 Sep 2014 19:25:27 +0000 (15:25 -0400)]
benitlux/view: add missing opening <html> tag
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Tue, 23 Sep 2014 19:23:47 +0000 (15:23 -0400)]
lib/re: fix invalid malloc
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Jean Privat [Tue, 23 Sep 2014 19:10:01 +0000 (15:10 -0400)]
Merge: Model uml
Introducing a new tool `nituml` for the generation of UML diagrams from a Nit code base.
For now, it supports the generation of a class diagram from an endpoint based on the flattened class hierarchy and the generation of a package diagram from a module, showing all the introduced and refined classes using a colour scheme (will be changed as it is as ugly as it might be misleading for the end-user).
How to use :
`nituml --diagram class [-p] lib/standard/standard.nit` => generates a class diagram in dot format for the stdlib
`nituml --diagram package [-p] lib/standard/string.nit` => generates a package diagram for the string module, showing local intros and redefs of classes/methods
Example of diagram :
`nituml --diagram class lib/standard/kernel.nit`
![kernel](https://cloud.githubusercontent.com/assets/1444825/4342041/
f600a4ea-403f-11e4-8720-
3bd27d9802c7.png)
`nituml --diagram package -p lib/standard/queue.nit`
![str](https://cloud.githubusercontent.com/assets/1444825/4342100/
bfb83398-4040-11e4-84e0-
c83896748f87.png)
TODO :
* [ ] Generate associations between classes
* [ ] Eventually generate a diagram for a new Nit project as it could be used for model-first design approaches
Pull-Request: #760
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>
Jean Privat [Tue, 23 Sep 2014 19:09:58 +0000 (15:09 -0400)]
Merge: Crypto
Basic cryptography module, introduces some simple forms of cryptography algorithms.
Pull-Request: #763
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>
Reviewed-by: Jean Privat <jean@pryen.org>
Lucas Bajolet [Tue, 23 Sep 2014 16:45:56 +0000 (12:45 -0400)]
nituml: Added tests for new tool
Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>
Lucas Bajolet [Tue, 23 Sep 2014 15:45:27 +0000 (11:45 -0400)]
nituml: Can generate UML package diagrams from nit source.
Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>
Lucas Bajolet [Wed, 17 Sep 2014 21:02:29 +0000 (17:02 -0400)]
nit: Added new binary nituml, for generation of UML diagrams from Nit source code.
Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>
Lucas Bajolet [Wed, 17 Sep 2014 20:12:49 +0000 (16:12 -0400)]
uml: Added UML class diagram generation from a Nit model
Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>
Lucas Bajolet [Wed, 17 Sep 2014 01:18:24 +0000 (21:18 -0400)]
model: Fix comment for MVisibility
Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>
Lucas Bajolet [Tue, 23 Sep 2014 18:06:15 +0000 (14:06 -0400)]
lib/standard/string: Moved escape_to_dot from nitcc to standard/string.nit
Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>
Lucas Bajolet [Tue, 23 Sep 2014 13:52:25 +0000 (09:52 -0400)]
lib/crypto: Added cryptography basic algos to lib
Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>
Jean Privat [Tue, 23 Sep 2014 05:01:52 +0000 (01:01 -0400)]
Merge: markdown: decorator generate headline ids and save them for further use in client.
Markdown decorator now remembers outputed headlines.
This will be usefull to reconstruct headline summary from parsed markdown.
Also added a fix on outofbound exception.
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Pull-Request: #764
Reviewed-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 23 Sep 2014 05:01:35 +0000 (01:01 -0400)]
Merge: Template strings and macros
# Template strings with macros replacement.
`TemplateString` provides a simple way to customize generic string templates
using macros and replacement.
A macro is represented as a string identifier like `%MACRO%` in the template
string. Using `TemplateString`, macros can be replaced by any `Streamable` data:
var tpl = new TemplateString("Hello %NAME%!")
tpl.replace("NAME", "Dave")
assert tpl.write_to_string == "Hello Dave!"
A macro identifier is valid if:
* starts with an uppercase letter
* contains only numers, uppercase letters or '_'
See `String::is_valid_macro_name` for more details.
## External template files
When using large template files it's recommanded to use external template files.
In external file `example.tpl`:
<!DOCTYPE html>
<html lang="en">
<head>
<title>%TITLE%</title>
</head>
<body>
<h1>%TITLE%</h1>
<p>%ARTICLE%</p>
</body>
</html>
Loading the template file using `TemplateString`:
var file = "example.tpl"
if file.file_exists then
tpl = new TemplateString.from_file("example.tpl")
tpl.replace("TITLE", "Home Page")
tpl.replace("ARTICLE", "Welcome on my site!")
end
## Outputting
Once macro replacement has been made, the `TemplateString` can be
output like any other `Template` using methods like `write_to`, `write_to_string`
or `write_to_file`.
tpl = new TemplateString("Hello %NAME%!")
tpl.replace("NAME", "Dave")
assert tpl.write_to_string == "Hello Dave!"
## Template correctness
`TemplateString` can be outputed even if all macros were not replaced.
In this case, the name of the macro will be displayed wuthout any replacement.
tpl = new TemplateString("Hello %NAME%!")
assert tpl.write_to_string == "Hello %NAME%!"
The `check` method can be used to ensure that all macros were replaced before
performing the output. Warning messages will be stored in `warnings` and can
be used to locate unreplaced macros.
tpl = new TemplateString("Hello %NAME%!")
if not tpl.check then
assert not tpl.warnings.is_empty
print "Cannot output unfinished template:"
print tpl.warnings.join("
")
exit(0)
else
tpl.write_to sys.stdout
end
assert tpl.write_to_string == "Hello %NAME%!"
Pull-Request: #747
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Reviewed-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 23 Sep 2014 05:01:32 +0000 (01:01 -0400)]
Merge: Nitdoc next
Some improvments for Nitdoc:
* **Better display of big class hierarchies in lists and graphs**: example with class Token: http://gresil.org/jenkins/job/CI-nitdoc/ws/doc/nitc/class_workspace__Token.html
* **Markdownize synopsys**: example with Concerns here: http://gresil.org/jenkins/job/CI-nitdoc/ws/doc/nitc/group_workspace__workspace.html#concerns
* **Better display for mpropdefs definition hierarchies**: example with the `Object::exit` method: http://gresil.org/jenkins/job/CI-nitdoc/ws/doc/nitc/class_standard__Object.html#standard__Object__exit
Also some minor fixes:
* add link to source even in local generation (link to the file so it can be openned in a browser but there is no jumps to lines)
* always redirect to mproperty definition in class page (try to hidde at a maximum the mproperty page so it only accessible from intro definition)
Previews:
* lib: http://gresil.org/jenkins/job/CI-nitdoc/ws/doc/stdlib/index.html
* nitc: http://gresil.org/jenkins/job/CI-nitdoc/ws/doc/nitc/index.html
Pull-Request: #745
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Reviewed-by: Jean Privat <jean@pryen.org>
Alexandre Terrasa [Tue, 23 Sep 2014 03:12:50 +0000 (23:12 -0400)]
nitdoc: show mpropdefs redef chain in MClass page.
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexis Laferrière [Tue, 12 Aug 2014 18:41:29 +0000 (14:41 -0400)]
lib/mnit_android: do not adjust input from C code
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Tue, 12 Aug 2014 18:42:39 +0000 (14:42 -0400)]
mnit_android: intro `AndroidKeyEvent::is_volume_up/down`
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Tue, 12 Aug 2014 18:41:57 +0000 (14:41 -0400)]
mnit_android: rename `key_char` to implement `to_c`
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>