Ace: рд╕реНрд╡рдд: рдкреВрд░реНрдг рдкреЙрдкрдЕрдк рдХрдВрдЯреЗрдирд░ рд╡рд┐рдХрд▓реНрдк

рдХреЛ рдирд┐рд░реНрдорд┐рдд 2 рдлрд╝рд░ре░ 2017  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: ajaxorg/ace

рдореИрдВ jQuery рд▓реЗрдЖрдЙрдЯ рдХреЗ рдЕрдВрджрд░ рдЗрдХреНрдХрд╛ рд╕рдВрдкрд╛рджрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╡реЙрдХ рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдХрднреА рднреА рдПрдХ рдкреВрд░реНрдг рд╕реНрдХреНрд░реАрди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдкреВрд░реНрдг рд╕реНрдХреНрд░реАрди рдореЛрдб рдореЗрдВ, рд╕реНрд╡рдд: рдкреВрд░реНрдг рдкреЙрдкрдЕрдк рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рд╢рд░реАрд░ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдмрдХрд┐ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ <div id="main-container"> рдкреВрд░реНрдг рд╕реНрдХреНрд░реАрди рдореЛрдб рдореЗрдВ рд╣реИред

рдкреВрд░реНрдг рд╕реНрдХреНрд░реАрди рдореЛрдб рдореЗрдВ, рдореИрдВ ctrl+space рджрдмрд╛рддрд╛ рд╣реВрдВ рдФрд░ рдлрд┐рд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ <div class=" ace_editor ace_autocomplete ace-tomorrow"> рдХреЛ <div id="main-container"> $ рдХреЗ рдЕрдВрджрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рд╕рд╣реА рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред

рдХреНрдпрд╛ рд╕реНрд╡рдд: рдкреВрд░реНрдг рдкреЙрдкрдЕрдк рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдВрдЯреЗрдирд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рд╢рд░реАрд░ рдХреЗ рдмрдЬрд╛рдп рдХрдВрдЯреЗрдирд░ рдХреЗ рд░реВрдк рдореЗрдВ <div id="main-container"> рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░реЗрдЧрд╛ рдЖрдИрдПрдордУред

рдкреВрд░рд╛ рдХреЛрдб: (.html рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВ)
рдХреЗрдВрджреНрд░ рдлрд▓рдХ рдореЗрдВ рдмрдЯрди рдкреВрд░реНрдг рд╕реНрдХреНрд░реАрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

<!DOCTYPE html>
<html lang="en">

  <head>
    <meta charset="UTF-8">
    <title>ACE Autocompletion demo</title>
    <style type="text/css" media="screen">
      body {
        overflow: hidden;
      }

      #editor {
        margin: 0;
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;
      }
    </style>
  </head>

  <body>
    <!-- html -->
    <div class="myDiv" style="height:800px">
      <div class="ui-layout-center">Center
        <button id="fullscreenButton" type="button">Full-Screen</button>
      </div>
      <div class="ui-layout-north">North</div>
      <div class="ui-layout-south">South</div>
      <div class="ui-layout-east"> code Mirror
        <div id="main-container">
          <div id="editor">Type in a word like "will" below and press ctrl+space or alt+space to get "rhyme completion"</div>
        </div>
      </div>
      <div class="ui-layout-west">West</div>
    </div>
    <!-- ace-plugin -->
    <script src="https://rawgithub.com/ajaxorg/ace-builds/master/src/ace.js" type="text/javascript" charset="utf-8"></script>
    <script src="https://rawgithub.com/ajaxorg/ace-builds/master/src/ext-language_tools.js" type="text/javascript" charset="utf-8"></script>
    <!-- layout.jquery-plugin -->
    <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
    <link type="text/css" rel="stylesheet" href="http://layout.jquery-dev.com/lib/css/layout-default-latest.css" />
    <script type="text/javascript" src="http://layout.jquery-dev.com/lib/js/jquery-ui-latest.js"></script>
    <script type="text/javascript" src="http://layout.jquery-dev.com/lib/js/jquery.layout-1.3.0.rc30.80.js"></script>
    <!-- jquery-fullscreen-plugin -->
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-fullscreen-plugin/1.1.4/jquery.fullscreen-min.js"></script>
    <script>
      //
      // setup ace editor
      function setupAce() {
        // trigger extension
        ace.require("ace/ext/language_tools");
        var editor = ace.edit("editor");
        editor.session.setMode("ace/mode/html");
        editor.setTheme("ace/theme/tomorrow");
        // enable autocompletion and snippets
        editor.setOptions({
          enableBasicAutocompletion: true,
          enableSnippets: true,
          enableLiveAutocompletion: false
        });
        $("#fullscreenButton").click(function(event) {
          $("#main-container").toggleFullScreen();
        });
      }
      // init layout
      $('.myDiv').layout({
        resizeWhileDragging: true,
        resizable: true,
        east: {
          size: 800
        },
        onload_end: function() {
          setupAce();
        }
      });
      //
    </script>
  </body>

</html>

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдРрд╕ рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╕рдорд╛рдзрд╛рди рдЬреЛрдбрд╝рдирд╛ рд╣реИ

        function getPopup() {
            if (!editor.completer) {
                var Autocomplete = ace.require("ace/autocomplete").Autocomplete
                editor.completer = new Autocomplete()
            }
            editor.completer.editor = editor
            editor.completer.$init()

            return editor.completer.popup.container;
        }
        document.onfullscreenchange = function(event) {
            var popup = getPopup();
            if (document.fullscreen)
                $("#main-container")[0].appendChild(popup);
            else
                document.body.appendChild(popup);
        }

рд╕рднреА 4 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

+1

рдХреНрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рд╣реИ?

рдРрд╕ рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╕рдорд╛рдзрд╛рди рдЬреЛрдбрд╝рдирд╛ рд╣реИ

        function getPopup() {
            if (!editor.completer) {
                var Autocomplete = ace.require("ace/autocomplete").Autocomplete
                editor.completer = new Autocomplete()
            }
            editor.completer.editor = editor
            editor.completer.$init()

            return editor.completer.popup.container;
        }
        document.onfullscreenchange = function(event) {
            var popup = getPopup();
            if (document.fullscreen)
                $("#main-container")[0].appendChild(popup);
            else
                document.body.appendChild(popup);
        }

рдзрдиреНрдпрд╡рд╛рдж @ рдирд╛рдЗрдЯрд╡рд┐рдВрдЧ

рд╢рд╛рдпрдж рдЖрдЧреЗ рдмрдврд╝реЗрдВ

  editor.completer.editor = editor
  editor.completer.$init()

рдЕрдВрджрд░ рдЕрдЧрд░ рдмрдпрд╛рди

if (!editor.completer) {

рдЗрд╕ рддрд░рд╣ рд╕реЗ рдпрд╣ рдХрдИ рд╕реНрд╡рдд: рдкреВрд░реНрдг рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЛ рддреБрд░рдВрдд рдЪрд╛рд▓реВ рдХрд░ рджреЗрдЧрд╛ (рдФрд░ рдЖрдк рдбреАрдУрдПрдо рдореЗрдВ рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ)ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

aslushnikov picture aslushnikov  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

featurecat picture featurecat  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ketysek picture ketysek  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

gsf picture gsf  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

RickStrahl picture RickStrahl  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ