code-block/utils
@ckeditor/ckeditor5-code-block/src/utils
Filtering
Functions
-
getIndentOutdentPositions( model ) → Array.<Position>
module:code-block/utils~getIndentOutdentPositions
Returns an array of all model positions within the selection that represent code block lines.
If the selection is collapsed, it returns the exact selection anchor position:
<codeBlock>[]foo</codeBlock> -> <codeBlock>^foo</codeBlock> <codeBlock>foo[]bar</codeBlock> -> <codeBlock>foo^bar</codeBlock>
Otherwise, it returns positions before each text node belonging to all code blocks contained by the selection:
<codeBlock> <codeBlock> foo[bar ^foobar <softBreak></softBreak> -> <softBreak></softBreak> baz]qux ^bazqux </codeBlock> </codeBlock>
It also works across other non–code blocks:
<codeBlock> <codeBlock> foo[bar ^foobar </codeBlock> </codeBlock> <paragraph>text</paragraph> -> <paragraph>text</paragraph> <codeBlock> <codeBlock> baz]qux ^bazqux </codeBlock> </codeBlock>
Note: The positions are in reverse order so they do not get outdated when iterating over them and the writer inserts or removes elements at the same time.
Note: The position is located after the leading white spaces in the text node.
Parameters
model : Model
Returns
Array.<Position>
-
getLeadingWhiteSpaces( codeLineNodes ) → String
module:code-block/utils~getLeadingWhiteSpaces
For a given model text node, it returns white spaces that precede other characters in that node. This corresponds to the indentation part of the code block line.
-
getNormalizedAndLocalizedLanguageDefinitions( editor ) → Array.<CodeBlockLanguageDefinition>
module:code-block/utils~getNormalizedAndLocalizedLanguageDefinitions
Returns code block languages as defined in
config.codeBlock.languages
but processed:- To consider the editor localization, i.e. to display
CodeBlockLanguageDefinition
in the correct language. There is no way to uset
when the user configuration is defined because the editor does not exist yet. - To make sure each definition has a CSS class associated with it even if not specified in the original configuration.
Parameters
editor : Editor
Returns
Array.<CodeBlockLanguageDefinition>
.
- To consider the editor localization, i.e. to display
-
getPropertyAssociation( languageDefs, key, value, )
module:code-block/utils~getPropertyAssociation
Returns an object associating certain language definition properties with others. For instance:
For:
const definitions = { { language: 'php', class: 'language-php', label: 'PHP' }, { language: 'javascript', class: 'js', label: 'JavaScript' }, }; getPropertyAssociation( definitions, 'class', 'language' );
returns:
{ 'language-php': 'php' 'js': 'javascript' }
and
getPropertyAssociation( definitions, 'language', 'label' );
returns:
{ 'php': 'PHP' 'javascript': 'JavaScript' }
Parameters
languageDefs : Array.<CodeBlockLanguageDefinition>
key : String
value : String
: Object.<String, String>
-
isModelSelectionInCodeBlock( selection ) → Boolean
module:code-block/utils~isModelSelectionInCodeBlock
Checks if any of the blocks within the model selection is a code block.
-
rawSnippetTextToViewDocumentFragment( writer, text ) → DocumentFragment
module:code-block/utils~rawSnippetTextToViewDocumentFragment
For plain text containing the code (a snippet), it returns a document fragment containing view text nodes separated by
<br>
elements (in place of new line characters "\n"), for instance:Input:
"foo()\n bar()"
Output:
<DocumentFragment> "foo()" <br/> "bar()" </DocumentFragment>
Parameters
writer : UpcastWriter
text : String
The raw code text to be converted.
Returns
Every day, we work hard to keep our documentation complete. Have you spotted an outdated information? Is something missing? Please report it via our issue tracker.