Ò»¡¢LSPÊÖÒÕ¹¤¾ßµÄ½¹µã¼ÛÖµÆÊÎö
LSP£¨Language Server Protocol£©×÷ΪÏÖ´úIDE¿ª·¢µÄÖ÷ÒªÐÒ飬ÕýÔÚÖØËÜÈí¼þ¹¤³ÌÁìÓòµÄ¿ª·¢·¶Ê½¡£À¶×àÔÆlspÈí¼þ¿âÖÐÊÕ¼µÄÖÖÖÖ¹¤¾ß¼¯£¬Í¨¹ý±ê×¼»¯ÓïÑÔЧÀͽӿÚʵÏÖÁË¿çÆ½Ì¨¿ª·¢Ö§³Ö¡£¶«ÆÂÍŶÓÕûÀíµÄ"ÖÇÄÜ´úÂ벹ȫÌ×¼þ"¼´»ùÓÚLSPÐÒ鿪·¢£¬Äܹ»ÏÔÖøÌáÉýJavaScript¡¢PythonµÈÓïÑԵıàÂëЧÂÊ¡£ÖµµÃ×¢ÖØµÄÊÇ£¬¸Ãƽ̨µÄºÏ¼¯×ÊÁϲ»µ«°üÀ¨Ö´ÐÐÎļþ£¬»¹ÅäÌ×ÌṩÁËÏêϸµÄAPIÎĵµºÍ²âÊÔÓÃÀý¡£
¶þ¡¢À¶×àÔÆ×ÊÔ´ÖÎÀíÆ½Ì¨ÌØÕ÷Ïê½â
×÷Ϊ×ÅÃûµÄÔÆ´æ´¢Ð§ÀÍÉÌ£¬À¶×àÔÆÎªLSP¹¤¾ß¿ª·¢ÕߴÁËרҵµÄ·Ö·¢ÇþµÀ¡£ÆäÖ±Á´ÏÂÔØÊÖÒÕ°ü¹ÜÁË´óÎļþ´«ÊäЧÂÊ£¬ÌØÊâÊÇÌå»ý½Ï´óµÄÓïÑÔЧÀÍÆ÷×°Öðü£¬ÏÂÔØËÙÂʿɴïͬÀàÆ½Ì¨µÄ3-5±¶¡£µ«Óû§Ðè×¢ÖØºË¶ÔÎļþ¹þÏ£Öµ£¬È·±£»ñÈ¡µÄÀ¶×àÔÆlspÈí¼þÏÂÔØ×ÊÔ´Óë¹Ù·½Ðû²¼°æ±¾ÍêȫһÖ¡£ÔõÑùÇø·Ö×ÊÔ´¿É¿¿ÐÔ£¿½¨ÒéÓÅÏÈÑ¡Ôñ´øÓÐ"¶«ÆÂ"ÈÏÖ¤±êʶµÄºÏ¼¯°ü£¬ÕâÀà×ÊÔ´¾ù¾ÓÉË«ÖØ´úÂëÉ󼯡£
Èý¡¢¿ª·¢¹¤¾ßºÏ¼¯µÄÇå¾²»ñȡ·¾¶
ÊÖÒÕÍŶÓÔÚʹÓÃÀ¶×àÔÆlspÈí¼þ¿â×ÊԴʱ£¬½¨Òé×ñÕÕÑÏ¿áµÄÇå¾²Á÷³Ì¡£Í¨¹ý×ÓÕ˺ŸôÍÑÀë·¢ÇéÐΣ¬¶ÔËùÓÐÏÂÔØµÄSDK£¨Software Development Kit£©¾ÙÐÐɳÏä²âÊÔ¡£ÒÔ"ÓïÒåÆÊÎö¹¤¾ß°üv3.2"ΪÀý£¬¸Ã×ÊÔ´ËäÈ»Ìå»ýµÖ´ï2.3GB£¬µ«ÅäÌ׵İ汾˵Ã÷ÎĵµÏêϸ¼Í¼ÁËÿ¸ö×é¼þµÄÒÀÀµ¹ØÏµ¡£Ê¹ÓÃÀú³ÌÖеij£¼ûÎóÇøÊÇÖ±½ÓÔÚÉú²úÇéÐΰ²ÅÅδÑéÖ¤¹¤¾ß£¬Õâ¿ÉÄÜÒý·¢Óï·¨ÆÊÎöÆ÷ÓëÏÖÓпò¼ÜµÄ¼æÈÝÐÔÎÊÌâ¡£
ËÄ¡¢¶«ÆÂÊÖÒÕÉçÇøµÄ×ÊÔ´ÕûÀí¹æ·¶
×÷ΪÀ¶×àÔÆLSPÈí¼þºÏ¼¯×ÊÁϵÄÖ÷Ҫά»¤·½£¬¶«ÆÂ¿ª·¢ÕßͬÃËÖÆ¶©ÁËÑÏ¿áµÄÊÖÒÕÎĵµ±à׫±ê×¼¡£ÆäÕûÀíµÄ¹¤¾ß¿â¾ù°üÀ¨£ºMD5УÑéÎļþ¡¢µ¥Î»²âÊÔÌ×¼þ¡¢¼æÈÝÐÔ¾ØÕó±íµÈÐëÒª×é¼þ¡£ÌØÊâÔÚÓïÒå°æ±¾¿ØÖÆ·½Ã棬ÿ¸ö×ÊÔ´°ü¶¼Æ¾Ö¤major.minor.patch¹æÔò¾ÙÐеü´úÖÎÀí¡£Óû§ÔÚÏÂÔØÊ±ÈôÓö°æ±¾ÔÓÂÒÇéÐΣ¬¿Éͨ¹ý¹¤¾ß°üÄÚµÄmanifest.xmlÎļþ×·ËÝÍêÕûµÄ¸üÐÂÈÕÖ¾¡£
Îå¡¢µä·¶Ó¦Ó󡾰ʵ¼ù²Ù×÷Ö¸ÄÏ
ÔÚÏêϸ¿ª·¢ÇéÐÎÖа²ÅÅÀ¶×àÔÆlspÈí¼þÏÂÔØ×ÊԴʱ£¬½¨Òé½ÓÄÉÈÝÆ÷»¯¼Æ»®¡£Í¨¹ýDocker¾µÏñ¼ÓÔØÔ¤ÉèÖõĿª·¢ÇéÐΣ¬¿ÉÈ·±£ÓïÑÔЧÀÍÆ÷µÄÔËÐиôÀëÐÔ¡£ÒÔTypeScriptÓïÑÔÖ§³Ö¹¤¾ßΪÀý£¬¹Ù·½ÍƼöµÄÄÚ´æÉèÖÃΪ4GB£¬µ«ÔÚ´¦Öóͷ£´óÐÍ´úÂë¿âʱ¿ÉÄÜÐèÒªµ÷½âJVM²ÎÊý¡£ÔõÑùÓÅ»¯ÐÔÄÜ£¿¿É²Î¿¼¶«ÆÂÊÖÒÕÎĵµÖеĵ÷ÓÅÖ¸ÄÏ£¬ÆäÖÐÏêϸ˵Ã÷Îú²î±ð³¡¾°ÏµÄGC£¨À¬»ø½ÓÄÉ£©Õ½ÂÔÉèÖüƻ®¡£
Áù¡¢¿ª·¢Õß³£¼ûÎÊÌâϵͳ½â´ð
Õë¶ÔÀ¶×àÔÆlspÈí¼þ¿âʹÓÃÖÐµÄ¸ßÆµÒÉÎÊ£¬ÊÖÒÕÍŶÓÕûÀíÁËÕï¶ÏÊֲᡣµ±Óöµ½²å¼þ¼ÓÔØÊ§°Üʱ£¬Ó¦¼ì²éÔËÐÐʱÇéÐαäÁ¿ÊÇ·ñ°üÀ¨JAVA_HOMEÉèÖá£Èô·ºÆð·ûºÅÆÊÎöÒì³££¬½¨Òé¸üÐÂÓïÒåË÷ÒýÊý¾Ý¿â¡£ÐèÒª×¢ÖØµÄÊÇ£¬²¿·ÖÀϰ汾¹¤¾ß°ü²»ÔÙά»¤£¬2019°æÓï·¨¼ì²éÆ÷ÒÑ×èÖ¹Çå¾²¸üУ¬¿ª·¢ÕßӦʵʱ´ÓÀ¶×àÔÆLSPÈí¼þºÏ¼¯×ÊÁÏÖлñÈ¡×îа汾¡£
ͨ¹ý¶ÔÀ¶×àÔÆLSPÈí¼þºÏ¼¯×ÊÁϵÄϵͳ»¯ÆÊÎö£¬¿ª·¢Õß¿ÉÏµÍ³ÕÆÎÕ¸ÃÊÖÒÕ×ÊÔ´µÄ»ñȡ·¾¶ÓëʹÓù淶¡£½¨Òé°´ÆÚÉó²é¶«ÆÂÍŶӵĸüÐÂͨ¸æ£¬Á¬ÏµÏîÄ¿ÐèÇóÑ¡Ôñ¾ÓÉÑéÖ¤µÄÎȹ̰汾£¬Í¬Ê±½¨Éè±ê×¼»¯µÄ¹¤¾ßÖÎÀíÁ÷³Ì¡£ÔÚÊý×Ö»¯×ªÐͼÓËÙµÄÅä¾°Ï£¬ºÏÀíʹÓÃÕâЩרҵ¹¤¾ß½«ÓÐÓÃÌáÉýÈí¼þ¿ª·¢ÖÊÁ¿Ó빤³ÌЧÂÊ¡£
Ò»¡¢LSPÊÖÒÕ¹¤¾ßµÄ½¹µã¼ÛÖµÆÊÎö
LSP£¨Language Server Protocol£©×÷ΪÏÖ´úIDE¿ª·¢µÄÖ÷ÒªÐÒ飬ÕýÔÚÖØËÜÈí¼þ¹¤³ÌÁìÓòµÄ¿ª·¢·¶Ê½¡£À¶×àÔÆlspÈí¼þ¿âÖÐÊÕ¼µÄÖÖÖÖ¹¤¾ß¼¯£¬Í¨¹ý±ê×¼»¯ÓïÑÔЧÀͽӿÚʵÏÖÁË¿çÆ½Ì¨¿ª·¢Ö§³Ö¡£¶«ÆÂÍŶÓÕûÀíµÄ"ÖÇÄÜ´úÂ벹ȫÌ×¼þ"¼´»ùÓÚLSPÐÒ鿪·¢£¬Äܹ»ÏÔÖøÌáÉýJavaScript¡¢PythonµÈÓïÑԵıàÂëЧÂÊ¡£ÖµµÃ×¢ÖØµÄÊÇ£¬¸Ãƽ̨µÄºÏ¼¯×ÊÁϲ»µ«°üÀ¨Ö´ÐÐÎļþ£¬»¹ÅäÌ×ÌṩÁËÏêϸµÄAPIÎĵµºÍ²âÊÔÓÃÀý¡£
¶þ¡¢À¶×àÔÆ×ÊÔ´ÖÎÀíÆ½Ì¨ÌØÕ÷Ïê½â
×÷Ϊ×ÅÃûµÄÔÆ´æ´¢Ð§ÀÍÉÌ£¬À¶×àÔÆÎªLSP¹¤¾ß¿ª·¢ÕߴÁËרҵµÄ·Ö·¢ÇþµÀ¡£ÆäÖ±Á´ÏÂÔØÊÖÒÕ°ü¹ÜÁË´óÎļþ´«ÊäЧÂÊ£¬ÌØÊâÊÇÌå»ý½Ï´óµÄÓïÑÔЧÀÍÆ÷×°Öðü£¬ÏÂÔØËÙÂʿɴïͬÀàÆ½Ì¨µÄ3-5±¶¡£µ«Óû§Ðè×¢ÖØºË¶ÔÎļþ¹þÏ£Öµ£¬È·±£»ñÈ¡µÄÀ¶×àÔÆlspÈí¼þÏÂÔØ×ÊÔ´Óë¹Ù·½Ðû²¼°æ±¾ÍêȫһÖ¡£ÔõÑùÇø·Ö×ÊÔ´¿É¿¿ÐÔ£¿½¨ÒéÓÅÏÈÑ¡Ôñ´øÓÐ"¶«ÆÂ"ÈÏÖ¤±êʶµÄºÏ¼¯°ü£¬ÕâÀà×ÊÔ´¾ù¾ÓÉË«ÖØ´úÂëÉ󼯡£
Èý¡¢¿ª·¢¹¤¾ßºÏ¼¯µÄÇå¾²»ñȡ·¾¶
ÊÖÒÕÍŶÓÔÚʹÓÃÀ¶×àÔÆlspÈí¼þ¿â×ÊԴʱ£¬½¨Òé×ñÕÕÑÏ¿áµÄÇå¾²Á÷³Ì¡£Í¨¹ý×ÓÕ˺ŸôÍÑÀë·¢ÇéÐΣ¬¶ÔËùÓÐÏÂÔØµÄSDK£¨Software Development Kit£©¾ÙÐÐɳÏä²âÊÔ¡£ÒÔ"ÓïÒåÆÊÎö¹¤¾ß°üv3.2"ΪÀý£¬¸Ã×ÊÔ´ËäÈ»Ìå»ýµÖ´ï2.3GB£¬µ«ÅäÌ׵İ汾˵Ã÷ÎĵµÏêϸ¼Í¼ÁËÿ¸ö×é¼þµÄÒÀÀµ¹ØÏµ¡£Ê¹ÓÃÀú³ÌÖеij£¼ûÎóÇøÊÇÖ±½ÓÔÚÉú²úÇéÐΰ²ÅÅδÑéÖ¤¹¤¾ß£¬Õâ¿ÉÄÜÒý·¢Óï·¨ÆÊÎöÆ÷ÓëÏÖÓпò¼ÜµÄ¼æÈÝÐÔÎÊÌâ¡£
ËÄ¡¢¶«ÆÂÊÖÒÕÉçÇøµÄ×ÊÔ´ÕûÀí¹æ·¶
×÷ΪÀ¶×àÔÆLSPÈí¼þºÏ¼¯×ÊÁϵÄÖ÷Ҫά»¤·½£¬¶«ÆÂ¿ª·¢ÕßͬÃËÖÆ¶©ÁËÑÏ¿áµÄÊÖÒÕÎĵµ±à׫±ê×¼¡£ÆäÕûÀíµÄ¹¤¾ß¿â¾ù°üÀ¨£ºMD5УÑéÎļþ¡¢µ¥Î»²âÊÔÌ×¼þ¡¢¼æÈÝÐÔ¾ØÕó±íµÈÐëÒª×é¼þ¡£ÌØÊâÔÚÓïÒå°æ±¾¿ØÖÆ·½Ã棬ÿ¸ö×ÊÔ´°ü¶¼Æ¾Ö¤major.minor.patch¹æÔò¾ÙÐеü´úÖÎÀí¡£Óû§ÔÚÏÂÔØÊ±ÈôÓö°æ±¾ÔÓÂÒÇéÐΣ¬¿Éͨ¹ý¹¤¾ß°üÄÚµÄmanifest.xmlÎļþ×·ËÝÍêÕûµÄ¸üÐÂÈÕÖ¾¡£
Îå¡¢µä·¶Ó¦Ó󡾰ʵ¼ù²Ù×÷Ö¸ÄÏ
ÔÚÏêϸ¿ª·¢ÇéÐÎÖа²ÅÅÀ¶×àÔÆlspÈí¼þÏÂÔØ×ÊԴʱ£¬½¨Òé½ÓÄÉÈÝÆ÷»¯¼Æ»®¡£Í¨¹ýDocker¾µÏñ¼ÓÔØÔ¤ÉèÖõĿª·¢ÇéÐΣ¬¿ÉÈ·±£ÓïÑÔЧÀÍÆ÷µÄÔËÐиôÀëÐÔ¡£ÒÔTypeScriptÓïÑÔÖ§³Ö¹¤¾ßΪÀý£¬¹Ù·½ÍƼöµÄÄÚ´æÉèÖÃΪ4GB£¬µ«ÔÚ´¦Öóͷ£´óÐÍ´úÂë¿âʱ¿ÉÄÜÐèÒªµ÷½âJVM²ÎÊý¡£ÔõÑùÓÅ»¯ÐÔÄÜ£¿¿É²Î¿¼¶«ÆÂÊÖÒÕÎĵµÖеĵ÷ÓÅÖ¸ÄÏ£¬ÆäÖÐÏêϸ˵Ã÷Îú²î±ð³¡¾°ÏµÄGC£¨À¬»ø½ÓÄÉ£©Õ½ÂÔÉèÖüƻ®¡£
Áù¡¢¿ª·¢Õß³£¼ûÎÊÌâϵͳ½â´ð
Õë¶ÔÀ¶×àÔÆlspÈí¼þ¿âʹÓÃÖÐµÄ¸ßÆµÒÉÎÊ£¬ÊÖÒÕÍŶÓÕûÀíÁËÕï¶ÏÊֲᡣµ±Óöµ½²å¼þ¼ÓÔØÊ§°Üʱ£¬Ó¦¼ì²éÔËÐÐʱÇéÐαäÁ¿ÊÇ·ñ°üÀ¨JAVA_HOMEÉèÖá£Èô·ºÆð·ûºÅÆÊÎöÒì³££¬½¨Òé¸üÐÂÓïÒåË÷ÒýÊý¾Ý¿â¡£ÐèÒª×¢ÖØµÄÊÇ£¬²¿·ÖÀϰ汾¹¤¾ß°ü²»ÔÙά»¤£¬2019°æÓï·¨¼ì²éÆ÷ÒÑ×èÖ¹Çå¾²¸üУ¬¿ª·¢ÕßӦʵʱ´ÓÀ¶×àÔÆLSPÈí¼þºÏ¼¯×ÊÁÏÖлñÈ¡×îа汾¡£
ͨ¹ý¶ÔÀ¶×àÔÆLSPÈí¼þºÏ¼¯×ÊÁϵÄϵͳ»¯ÆÊÎö£¬¿ª·¢Õß¿ÉÏµÍ³ÕÆÎÕ¸ÃÊÖÒÕ×ÊÔ´µÄ»ñȡ·¾¶ÓëʹÓù淶¡£½¨Òé°´ÆÚÉó²é¶«ÆÂÍŶӵĸüÐÂͨ¸æ£¬Á¬ÏµÏîÄ¿ÐèÇóÑ¡Ôñ¾ÓÉÑéÖ¤µÄÎȹ̰汾£¬Í¬Ê±½¨Éè±ê×¼»¯µÄ¹¤¾ßÖÎÀíÁ÷³Ì¡£ÔÚÊý×Ö»¯×ªÐͼÓËÙµÄÅä¾°Ï£¬ºÏÀíʹÓÃÕâЩרҵ¹¤¾ß½«ÓÐÓÃÌáÉýÈí¼þ¿ª·¢ÖÊÁ¿Ó빤³ÌЧÂÊ¡£