nl_tokens: If the cursor is at position do we have sufficient data to start displaying the next hint . This is both complex and important . For example if the user has just typed : <ul > <li > set tabstop then they clearly want to know about the valid values for the tabstop setting so the hint is based on the next parameter . <li > set tabstop ( without trailing space ) - they will probably still want to know about the valid values for the tabstop setting because there is no confusion about the setting in question . <li > set tabsto they ve not finished typing a setting name so the hint should be based on the current parameter . <li > set tabstop ( when there is an additional tabstopstyle setting ) we can t make assumptions about the setting - we re not finished . < / ul > <p > Note that the input for 2 and 4 is identical only the configuration has changed so hint display is environmental .
pl_tokens: function ( position ) { if ( ! this . arg ) { return false ; } // Note we don't check if position >= this.arg.start because that's // implied by the fact that we're asking the assignments in turn, and // we want to avoid thing falling between the cracks, but we do need // to check that the argument does have a position if ( this . arg . start === - 1 ) { return false ; } // We're clearly done if the position is past the end of the text if ( <mask> > this . arg . end ) { return false ; } // If we're AT the end, the position is captured if either the status // is not valid or if there are other valid options including current if ( position === this . arg . end ) { return this . conversion . status !== Status . VALID || this . conversion . predictions . length !== 0 ; } // Otherwise we're clearly inside return true ; }