From 3e3640376657ce29367df2eae36d0856a2405f81 Mon Sep 17 00:00:00 2001 From: Chris Morgan Date: Wed, 3 Dec 2014 12:58:14 +1100 Subject: Update the Rust prelude items. --- pygments/lexers/rust.py | 82 ++++++++++++++++++++++++++++++++++--------------- 1 file changed, 57 insertions(+), 25 deletions(-) diff --git a/pygments/lexers/rust.py b/pygments/lexers/rust.py index c2bea123..e64657c9 100644 --- a/pygments/lexers/rust.py +++ b/pygments/lexers/rust.py @@ -55,33 +55,65 @@ class RustLexer(RegexLexer): 'int', 'f32', 'f64', 'str', 'bool'), suffix=r'\b'), Keyword.Type), (r'self\b', Name.Builtin.Pseudo), - # Prelude + # Prelude (taken from Rust’s src/libstd/prelude.rs) (words(( - 'Freeze', 'Pod', 'Send', 'Sized', 'Add', 'Sub', 'Mul', 'Div', 'Rem', 'Neg', 'Not', 'BitAnd', - 'BitOr', 'BitXor', 'Drop', 'Shl', 'Shr', 'Index', 'Option', 'Some', 'None', 'Result', - 'Ok', 'Err', 'from_str', 'range', 'print', 'println', 'Any', 'AnyOwnExt', 'AnyRefExt', - 'AnyMutRefExt', 'Ascii', 'AsciiCast', 'OnwedAsciiCast', 'AsciiStr', - 'IntoBytes', 'Bool', 'ToCStr', 'Char', 'Clone', 'DeepClone', 'Eq', 'ApproxEq', - 'Ord', 'TotalEq', 'Ordering', 'Less', 'Equal', 'Greater', 'Equiv', 'Container', - 'Mutable', 'Map', 'MutableMap', 'Set', 'MutableSet', 'Default', 'FromStr', - 'Hash', 'FromIterator', 'Extendable', 'Iterator', 'DoubleEndedIterator', - 'RandomAccessIterator', 'CloneableIterator', 'OrdIterator', - 'MutableDoubleEndedIterator', 'ExactSize', 'Times', 'Algebraic', - 'Trigonometric', 'Exponential', 'Hyperbolic', 'Bitwise', 'BitCount', - 'Bounded', 'Integer', 'Fractional', 'Real', 'RealExt', 'Num', 'NumCast', - 'CheckedAdd', 'CheckedSub', 'CheckedMul', 'Orderable', 'Signed', - 'Unsigned', 'Round', 'Primitive', 'Int', 'Float', 'ToStrRadix', - 'ToPrimitive', 'FromPrimitive', 'GenericPath', 'Path', 'PosixPath', - 'WindowsPath', 'RawPtr', 'Buffer', 'Writer', 'Reader', 'Seek', - 'SendStr', 'SendStrOwned', 'SendStrStatic', 'IntoSendStr', 'Str', - 'StrVector', 'StrSlice', 'OwnedStr', 'IterBytes', 'ToStr', 'IntoStr', - 'CopyableTuple', 'ImmutableTuple', 'ImmutableEqVector', 'ImmutableTotalOrdVector', - 'ImmutableCopyableVector', 'OwnedVector', 'OwnedCopyableVector', - 'OwnedEqVector', 'MutableVector', 'MutableTotalOrdVector', - 'Vector', 'VectorVector', 'CopyableVector', 'ImmutableVector', - 'Port', 'Chan', 'SharedChan', 'spawn', 'drop'), suffix=r'\b'), + # Reexported core operators + 'Copy', 'Send', 'Sized', 'Sync', + 'Add', 'Sub', 'Mul', 'Div', 'Rem', 'Neg', 'Not', + 'BitAnd', 'BitOr', 'BitXor', + 'Drop', 'Deref', 'DerefMut', + 'Shl', 'Shr', + 'Index', 'IndexMut', + 'Slice', 'SliceMut', + 'Fn', 'FnMut', 'FnOnce', + + # Reexported functions + 'range', + 'drop', + 'from_str', + + # Reexported types and traits + 'Ascii', 'AsciiCast', 'OwnedAsciiCast', 'AsciiStr', + 'IntoBytes', + 'IntoCow', + 'ToCStr', + 'Char', 'UnicodeChar', + 'Clone', + 'PartialEq', 'PartialOrd', 'Eq', 'Ord', + 'Ordering', 'Equiv', + 'Less', 'Equal', 'Greater', + 'FromIterator', 'Extend', 'ExactSizeIterator', + 'Iterator', 'IteratorExt', 'DoubleEndedIterator', + 'DoubleEndedIteratorExt', 'CloneIteratorExt', + 'RandomAccessIterator', 'IteratorCloneExt', + 'IteratorOrdExt', 'MutableDoubleEndedIterator', + 'ToPrimitive', 'FromPrimitive', + 'Box', + 'Option', + 'Some', 'None', + 'GenericPath', 'Path', 'PosixPath', 'WindowsPath', + 'RawPtr', 'RawMutPtr', + 'Result', + 'Ok', 'Err', + 'Buffer', 'Writer', 'Reader', 'Seek', 'BufferPrelude', + 'Str', 'StrVector', 'StrPrelude', + 'StrAllocating', 'UnicodeStrPrelude', + 'Tuple1', 'Tuple2', 'Tuple3', 'Tuple4', + 'Tuple5', 'Tuple6', 'Tuple7', 'Tuple8', + 'Tuple9', 'Tuple10', 'Tuple11', 'Tuple12', + 'SlicePrelude', 'AsSlice', 'CloneSlicePrelude', + 'VectorVector', 'PartialEqSlicePrelude', 'OrdSlicePrelude', + 'CloneSliceAllocPrelude', 'OrdSliceAllocPrelude', 'SliceAllocPrelude', + 'BoxedSlicePrelude', + 'IntoString', 'String', 'ToString', + 'Vec', + + # Reexported runtime types + 'sync_channel', 'channel', + 'SyncSender', 'Sender', 'Receiver', + 'spawn', + ), suffix=r'\b'), Name.Builtin), - (r'(ImmutableTuple\d+|Tuple\d+)\b', Name.Builtin), # Labels (r'(break|continue)(\s*)(\'[A-Za-z_]\w*)?', bygroups(Keyword, Text.Whitespace, Name.Label)), # Character Literal -- cgit v1.2.1