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> | <itemizedlist> | ||||||
| 
 | 
 | ||||||
|  |   <listitem> | ||||||
|  |     <para>Dashes are now valid as part of identifiers and attribute | ||||||
|  |     names.</para> | ||||||
|  |   </listitem> | ||||||
|  | 
 | ||||||
|   <listitem> |   <listitem> | ||||||
|     <para>Nix no longer sets the immutable bit on files in the Nix |     <para>Nix no longer sets the immutable bit on files in the Nix | ||||||
|     store.  Instead, the recommended way to guard the Nix store |     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) |     ("\\<isNull\\>" . font-lock-builtin-face) | ||||||
|     ("[a-zA-Z][a-zA-Z0-9\\+-\\.]*:[a-zA-Z0-9%/\\?:@&=\\+\\$,_\\.!~\\*'-]+" |     ("[a-zA-Z][a-zA-Z0-9\\+-\\.]*:[a-zA-Z0-9%/\\?:@&=\\+\\$,_\\.!~\\*'-]+" | ||||||
|      . font-lock-constant-face) |      . 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)) |      (1 font-lock-variable-name-face nil nil)) | ||||||
|     ("<[a-zA-Z0-9._\\+-]+\\(/[a-zA-Z0-9._\\+-]+\\)*>" |     ("<[a-zA-Z0-9._\\+-]+\\(/[a-zA-Z0-9._\\+-]+\\)*>" | ||||||
|      . font-lock-constant-face) |      . 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]+ | INT         [0-9]+ | ||||||
| PATH        [a-zA-Z0-9\.\_\-\+]*(\/[a-zA-Z0-9\.\_\-\+]+)+ | PATH        [a-zA-Z0-9\.\_\-\+]*(\/[a-zA-Z0-9\.\_\-\+]+)+ | ||||||
| SPATH       \<[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; }; |   as = { x.y.z = 123; a.b.c = 456; }; | ||||||
| 
 | 
 | ||||||
|   bs = { foo.bar = "foo"; }; |   bs = { f-o-o.bar = "foo"; }; | ||||||
| 
 | 
 | ||||||
|   or = x: y: x || y; |   or = x: y: x || y; | ||||||
|    |    | ||||||
|  | @ -13,7 +13,7 @@ in | ||||||
|     as.foo or "foo" |     as.foo or "foo" | ||||||
|     as.x.y.bla or as.a.b.c |     as.x.y.bla or as.a.b.c | ||||||
|     as.a.b.c or as.x.y.z |     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" |     as.x.y.bla or bs.bar.foo or "xyzzy" | ||||||
|     123.bla or null.foo or "xyzzy" |     123.bla or null.foo or "xyzzy" | ||||||
|     # Backwards compatibility test. |     # Backwards compatibility test. | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue