any_syntax_highlighter is a lightweight 'convention based' syntax highlighter which provides highlighting to input text code.
Note: boxDecoration has been changed to decoration since v0.0.12
import package-
import 'package:any_syntax_highlighter/any_syntax_highlighter.dart';
The above image contains McLaren font provided by google_fonts.
Basic usage
AnySyntaxHighlighter(
'''Class Main{
public static void main(String args[]){
}
}'''
)
Usage with optional fields
AnySyntaxHighlighter(
'#your code goes here',
fontSize: 16,
lineNumbers: false, // by default false
theme: AnySyntaxHighlighterThemeCollection.githubWebTheme(), // you can create and pass custom theme using AnySyntaxHighlighterTheme class
isSelectableText: true, // this creates a SelectableText.rich() widget, makes text selectable (by default false)
useGoogleFont: 'Lato',
copyIcon: const Icon(Icons.copy_rounded,color:Colors.black),// default is white colored icon
hasCopyButton: true,// by default false
/* other options are:-
padding,
margin,
textAlign,
this.textDirection,
softWrap,
overflow,
textScaleFactor,
maxLines,
locale,
strutStyle,
textWidthBasis,
textHeightBehavior,
overrideDecoration
*/
)
You can add any of the google fonts available in google_fonts library. Just pass a string name of google font you want to use to useGoogleFont property
AnySyntaxHighlighter(
'// google fonts usage demo',
useGoogleFont: 'Lato'
)
Don't forget to add appropriate License for the font you are using for more details read google_fonts documentation.
package/classes | definition |
---|---|
AnySyntaxHighlighter | Widget that provides highlighting |
AnySyntaxHighlighterBaseTheme | super class of AnySyntaxHighlighterTheme no use case for user |
AnySyntaxHighlighterTheme | for making custom themes you can use this class and pass it to theme option of widget |
AnySyntaxHighlighterThemeCollection | collection of default themes provided by this package |
RegexCollection | collection of regular expression strings used to tokenize the input code, no or less use case for user |
Token | token class for internal usage only |
Open for contribution, specially if you can create themes using our web tool AnySyntaxHighlighterThemeLab For themes you need not necessarily need to raise an issue just build the theme, make sure you do these things:-
If you find any bug/suggestion feel free to raise an issue on github repository.