Allow dashes in identifiers
In Nixpkgs, the attribute in all-packages.nix corresponding to a
package is usually equal to the package name.  However, this doesn't
work if the package contains a dash, which is fairly common.  The
convention is to replace the dash with an underscore (e.g. "dbus-lib"
becomes "dbus_glib"), but that's annoying.  So now dashes are valid in
variable / attribute names, allowing you to write:
  dbus-glib = callPackage ../development/libraries/dbus-glib { };
and
  buildInputs = [ dbus-glib ];
Since we don't have a negation or subtraction operation in Nix, this
is unambiguous.
			
			
This commit is contained in:
		
							parent
							
								
									f46612be96
								
							
						
					
					
						commit
						95c74eae26
					
				
					 4 changed files with 9 additions and 4 deletions
				
			
		|  | @ -14,6 +14,11 @@ | |||
| 
 | ||||
| <itemizedlist> | ||||
| 
 | ||||
|   <listitem> | ||||
|     <para>Dashes are now valid as part of identifiers and attribute | ||||
|     names.</para> | ||||
|   </listitem> | ||||
| 
 | ||||
|   <listitem> | ||||
|     <para>Nix no longer sets the immutable bit on files in the Nix | ||||
|     store.  Instead, the recommended way to guard the Nix store | ||||
|  |  | |||
|  | @ -78,7 +78,7 @@ The hook `nix-mode-hook' is run when Nix mode is started. | |||
|     ("\\<isNull\\>" . font-lock-builtin-face) | ||||
|     ("[a-zA-Z][a-zA-Z0-9\\+-\\.]*:[a-zA-Z0-9%/\\?:@&=\\+\\$,_\\.!~\\*'-]+" | ||||
|      . font-lock-constant-face) | ||||
|     ("\\<\\([a-zA-Z_][a-zA-Z0-9_'\.]*\\)[ \t]*=" | ||||
|     ("\\<\\([a-zA-Z_][a-zA-Z0-9_'\-\.]*\\)[ \t]*=" | ||||
|      (1 font-lock-variable-name-face nil nil)) | ||||
|     ("<[a-zA-Z0-9._\\+-]+\\(/[a-zA-Z0-9._\\+-]+\\)*>" | ||||
|      . font-lock-constant-face) | ||||
|  |  | |||
|  | @ -78,7 +78,7 @@ static Expr * unescapeStr(SymbolTable & symbols, const char * s) | |||
| %} | ||||
| 
 | ||||
| 
 | ||||
| ID          [a-zA-Z\_][a-zA-Z0-9\_\']* | ||||
| ID          [a-zA-Z\_][a-zA-Z0-9\_\'\-]* | ||||
| INT         [0-9]+ | ||||
| PATH        [a-zA-Z0-9\.\_\-\+]*(\/[a-zA-Z0-9\.\_\-\+]+)+ | ||||
| SPATH       \<[a-zA-Z0-9\.\_\-\+]+(\/[a-zA-Z0-9\.\_\-\+]+)*\> | ||||
|  |  | |||
|  | @ -4,7 +4,7 @@ let | |||
| 
 | ||||
|   as = { x.y.z = 123; a.b.c = 456; }; | ||||
| 
 | ||||
|   bs = { foo.bar = "foo"; }; | ||||
|   bs = { f-o-o.bar = "foo"; }; | ||||
| 
 | ||||
|   or = x: y: x || y; | ||||
|    | ||||
|  | @ -13,7 +13,7 @@ in | |||
|     as.foo or "foo" | ||||
|     as.x.y.bla or as.a.b.c | ||||
|     as.a.b.c or as.x.y.z | ||||
|     as.x.y.bla or bs.foo.bar or "xyzzy" | ||||
|     as.x.y.bla or bs.f-o-o.bar or "xyzzy" | ||||
|     as.x.y.bla or bs.bar.foo or "xyzzy" | ||||
|     123.bla or null.foo or "xyzzy" | ||||
|     # Backwards compatibility test. | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue